Practices8(双指针)|925. 长按键入、844. 比较含退格的字符串

这篇具有很好参考价值的文章主要介绍了Practices8(双指针)|925. 长按键入、844. 比较含退格的字符串。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

925. 长按键入

1.题目:

你的朋友正在使用键盘输入他的名字 name。偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次。

你将会检查键盘输入的字符 typed。如果它对应的可能是你的朋友的名字(其中一些字符可能被长按),那么就返回 True

示例 1:

输入:name = "alex", typed = "aaleex"
输出:true
解释:'alex' 中的 'a' 和 'e' 被长按。

示例 2:

输入:name = "saeed", typed = "ssaaedd"
输出:false
解释:'e' 一定需要被键入两次,但在 typed 的输出中不是这样。
2.思路:

双指针

使用两个下标 i,ji,ji,j 追踪 name 和 typed的位置。

当 name[i]=typed[j]时,说明两个字符串存在一对匹配的字符,此时将i,j 都加 1。

否则,如果 typed[j]=typed[j−1],说明存在一次长按键入,此时只将 j 加 1。

最后,如果 i=name.length,说明 name的每个字符都被「匹配」了。

3.代码:
class Solution {
    public boolean isLongPressedName(String name, String typed) {
         if(typed.length()<name.length()){
             return false;
         }
         int n=0,t=0;
         while(t<typed.length()){
             if(n<name.length() && name.charAt(n)==typed.charAt(t)){
                 t++; 
                 n++;
             }else{
                if(t>0 && typed.charAt(t)==typed.charAt(t-1)){
                    t++;
                }else{
                    return false;
                }
             }
         }
         return n==name.length();
    }
}

844. 比较含退格的字符串

1.题目:

给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true 。# 代表退格字符。

注意:如果对空文本输入退格字符,文本继续为空。

示例 1:

输入:s = "ab#c", t = "ad#c"
输出:true
解释:s 和 t 都会变成 "ac"。

示例 2:

输入:s = "ab##", t = "c#d#"
输出:true
解释:s 和 t 都会变成 ""。

示例 3:

输入:s = "a#c", t = "b"
输出:false
解释:s 会变成 "c",但 t 仍然是 "b"。
2.思路:

双指针--从后向前统计两个字符串的# 并模拟删除操作(长度减一)得到没有退格符的字符串,从后向前统计字符串的每一位是否相等,相等返回true。文章来源地址https://www.toymoban.com/news/detail-638763.html

3.代码:
class Solution {
    public boolean backspaceCompare(String s, String t) {
        //双指针
        int lengthS=s.length()-1,lengthT=t.length()-1;
        int backSpaceS=0,backSpaceT=0;
        while(lengthS>=0 || lengthT>=0){
            while(lengthS>=0){
                if(s.charAt(lengthS)=='#'){
                    backSpaceS++;
                    lengthS--;
                }else if(backSpaceS>0){
                    backSpaceS--;
                    lengthS--;
                }else{
                    break;
                }
            }
            while(lengthT>=0){
                if(t.charAt(lengthT)=='#'){
                    backSpaceT++;
                    lengthT--;
                }else if(backSpaceT>0){
                    backSpaceT--;
                    lengthT--;
                }else{
                    break;
                }
            }
            if(lengthS>=0 && lengthT>=0){
                if(s.charAt(lengthS)!=t.charAt(lengthT)){
                    return false;
                }
            }else{
                if(lengthS>=0 || lengthT>=0){
                    return false;
                }
            }
            lengthS--;
            lengthT--;
        }
        return true;
    }
}

到了这里,关于Practices8(双指针)|925. 长按键入、844. 比较含退格的字符串的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 西北大学计算机考研844经验分享(初试科目844-详细复习方法)

    ​ 我本科就读于 西安某双非一本计算机科学与技术 专业,在2022年进行了半年的考研复习,从2022年6月开始陆陆续续复习,复习6个多月,上岸 西北大学软件工程专业研究生 ,专业课分数 129 分。在读研一年来,在各大机构任职专业课辅导老师,辅导总时长达288小时,帮助多

    2024年02月10日
    浏览(47)
  • 【C语言深度解剖】float变量在内存中存储原理&&指针变量与“零值”比较

    大家好好我是沐曦希💕 根据国际标准IEEE(电气和电子工程协会) 754,任意一个二进制浮点数V可以表示成下面的形式: (-1)^S * M * 2^E (-1)^S表示符号位,当S=0,V为正数;当S=1,V为负数。 M表示有效数字,大于等于1,小于2。 2^E表示指数位。 例如: 十进制中的5.0转换成二进制

    2024年02月14日
    浏览(40)
  • codeforce #925 (div3) 题解

    D. Divisible Pairs 给出数组 a a a ,如果二元组 ( i , j ) (i,j) ( i , j ) 满足 a i + a j m o d x = = 0 a i − a j m o d y = = 0 a_i + a_j mod x ==0 \\\\ a_i - a_j mod y == 0 a i ​ + a j ​ m o d x == 0 a i ​ − a j ​ m o d y == 0 ,则beauty。其中 i j ij i j 根据题意不难得出,符合条件的二元组应满足 a i m o d    x

    2024年04月16日
    浏览(35)
  • LeetCode 925. Long Pressed Name

    Your friend is typing his  name  into a keyboard. Sometimes, when typing a character  c , the key might get  long pressed , and the character will be typed 1 or more times. You examine the  typed  characters of the keyboard. Return  True  if it is possible that it was your friends name, with some characters (possibly none) being long pressed. Example

    2024年02月10日
    浏览(22)
  • 西北大学计算机考研844高分经验分享

    个人介绍 ​ 本人是西北大学22级软件工程研究生,考研专业课 129 分,过去一年里在各大辅导机构任职,辅导考研学生专业课 844 ,辅导总时长达 288 小时,帮助多名学生专业课高分上岸。 前情回顾 ​ 去年也就是2022年3月复试结束后,我将自己专业课高分经验、复习资料整理

    2024年02月11日
    浏览(48)
  • Best practices for Grafana SLOs

    Best practices for Grafana SLOs | Grafana Cloud documentation Because SLOs are still a relatively new practice, it can feel overwhelming when you start to create SLOs for the first time. To help simplify things, some best practices for SLOs and SLO queries are provided on this page. A Service Level Objective (SLO) is meant to define specific, measurable targ

    2024年04月23日
    浏览(27)
  • Software architecture design patterns and practices:

    作者:禅与计算机程序设计艺术 随着软件规模的不断扩大和复杂性的增加,软件系统的设计、开发和维护都面临着越来越多的挑战。软件架构设计模式(SAP)则提供了一种在复杂系统中应用解耦、可维护、可扩展等原则的有效方法。本文总结了SAP的一些最具代表性的设计模式

    2024年02月08日
    浏览(42)
  • Enterprise UX Design Principles and Best Practices

    Enterprise UX Design 1.1 1. Understand the User and Context 1.2 2. Simplify Complexity 1.3 3. Consistency and Familiarity 1.4 4. Clear Information Hierarchy 1.5 5. Seamless Integration 1.6 6. Accessibility and Inclusivity(包容性) 1.7 7. Error Prevention and Recovery 1.8 8. Performance and Scalability 1.9 9. User Feedback and Iteration 1.10 10. Securit

    2024年02月19日
    浏览(43)
  • Rust安全编码实践 Secure Coding Practices in Rust

    作者:禅与计算机程序设计艺术 Rust编程语言被称为可保证内存安全的系统编程语言,它在编译期间通过类型系统确保数据不出错。因此,Rust语言开发者需要掌握一些安全编码实践,如内存安全、访问控制、输入验证等。本文将对这些安全编码实践进行详细介绍,并结合Rus

    2024年02月04日
    浏览(40)
  • Practices11|41. 缺失的第一个正数(数组)、73. 矩阵置零(矩阵)

    1.题目: 给你一个未排序的整数数组  nums  ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为  O(n)  并且只使用常数级别额外空间的解决方案。 示例 1: 示例 2: 示例 3: 提示: 1 = nums.length = 5 * 105 -231 = nums[i] = 231 - 1 2.思路: 如果本题没有额外的时空复杂

    2024年02月12日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包