【双指针-简单】844. 比较含退格的字符串

Manus通用AI智能体完全使用指南(2025最新版)——从注册到高阶技巧全解析 阅读详情

【题目】
给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。
注意:如果对空文本输入退格字符,文本继续为空。
【示例 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 = “#a#c”
输出:true
解释:S 和 T 都会变成 “c”。
【示例 4】
输入:S = “a#c”, T = “b”
输出:false
解释:S 会变成 “c”,但 T 仍然是 “b”。
【提示】
1 <= S.length <= 200
1 <= T.length <= 200
S 和 T 只含有小写字母以及字符 ‘#’。
【进阶】
你可以用 O(N) 的时间复杂度和 O(1) 的空间复杂度解决该问题吗?
【代码】
【Python】
在这里插入图片描述

class Solution:
    def backspaceCompare(self, S: str, T: str) -> bool:
        s,t=[],[]
        for x in S:
            if x != '#':
                s.append(x)
            elif len(s):
                s.pop()

        for x in T:
            if x != '#':
                t.append(x)
            elif len(t):
                t.pop()
        return s==t

【方法2:双指针】
在这里插入图片描述

class Solution:
    def backspaceCompare(self, S: str, T: str) -> bool:
        i, j = len(S) - 1, len(T) - 1
        skipS = skipT = 0

        while i >= 0 or j >= 0:
            while i >= 0:
                if S[i] == "#":
                    skipS += 1
                elif skipS > 0:
                    skipS -= 1
                else:
                    break
                i -= 1
            while j >= 0:
                if T[j] == "#":
                    skipT += 1
                elif skipT > 0:
                    skipT -= 1
                else:
                    break
                j -= 1
            if i >= 0 and j >= 0:
                if S[i] != T[j]:
                    return False
            elif i >= 0 or j >= 0:
                return False
            i -= 1
            j -= 1
        
        return True
【WRF-FDDA】观测 Obs nudging 的配置与使用说明(中) WRF-FDDA 阅读详情

相关推荐

关于solidworks无法获得下列许可SOLIDWORKS Standard的解决方法

在使用solid works的时候,出现无法获得下列许可SOLIDWORKS Standard,刚开始还以为软件出了问题,经过一方折腾找到了解决方法。希望这个方法可以帮助到您 找到这个服务 问题到这里就已经得到了解决,但更大的问题是,要是每次遇见这种都要这么麻烦,岂不是很累?这里也提供一种方法。考虑到每个人的情况,下面说的可能有一点啰嗦。 !!!!!!注意那个在此期间之后重新启动服...

Chaosna13的博客 7万+

Leetcode栈系列之:844.比较含退格的字符串

题目描述: 给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。 注意:如果对空文本输入退格字符,文本继续为空。 示例 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 = "#a#c" 输出:true.

lu_yunjie的专栏 252

一文帮你彻底搞懂ARM Debug Interface之SWD(转)

ARM的文档写的已经很好了,但是关于上电以后的第一时间应该怎么操作,依然写的不够清晰,导致我第一次用的时候还是费了一些周折。今天做一个详细的梳理,希望能够帮助到更多的朋友。BTW, ARM_Cortex-M0/3 DesignStart系列会持续更新,只是中间可能会穿插其他知识点。SWD是Serial Wire Debug的简称,翻译成中文是”串行线调试”。

2302_79847220的博客 6862

特殊的转义字符—— \b 退格字符 ASCII 0x08

字符,也就是 ASCII 码 0x8 的字符被原样输出了出来,**在文本编辑器里并没有实现退格的效果。判题平台上使用的就是类似的方法,把程序的输出直接导出,传到网站上显示,但浏览器可不认。事实上退格键在早期打印机上的作用就是“往前退一格”,后来退格键的含义变了,变成了“往前退一格 + 删除一个字符”。想要解决,则必须判断当前输出的是否为第一个或者最后一个数字,如果是,就不用输出加号。字符的确是退格字符,但此退格非彼退格,可不是键盘上的退格键。,这是个退格字符,能不能用它把多余的加号给删了呢?

XcantloadX的博客 1万+

TSmaster CANFD配置避坑指南:为什么你的PCAN盒不支持最新版本?

本文针对TSmaster配置PCAN硬件进行CANFD通信时的常见问题,提供了详细的避坑指南。重点解析了CANFD配置中TSEG1等关键参数的理解误区,并深入探讨了TSmaster新版本与PCAN硬件驱动之间的兼容性变化,帮助工程师快速定位并解决连接失败或无法发送CANFD报文等问题。

alpha的博客 545

CSP历年真题201503-1-图像旋转(C/C++)

一、问题描述 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度。 计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可。 输入格式 二、输入格式 输入的第一行包含两个整数n, m,分别表示图像矩阵的行数和列数。 接下来n行每行包含m个整数,表示输入的图像。 三、输出格式 输出m行,每行包含n个整数,表示原始矩阵逆时针旋转90度后的矩阵。 四、...

GTboy100的博客 1671

844.比较含退格的字符串(双指针)

【代码】844.比较含退格的字符串(双指针)

sangedianhao的博客 413

手把手教你配置MAX96712解串器:从I2C地址分配到PWM帧同步

本文详细解析了MAX96712解串器在自动驾驶视觉链路中的核心配置流程。从I2C地址分配、GMSL2数据流映射到实现多摄像头精准同步的PWM帧同步触发,手把手指导工程师构建高可靠性的图像传输系统,并提供了实用的Linux调试技巧与问题排查思路。

weixin_29297127的博客 927

【LeetCode844.比较含退格的字符串】——双指针法

【LeetCode844.比较含退格的字符串】——双指针法

weixin_51630192的博客 796

定制PYNQ的overlay

一、用HLS生成一个定制IP(加速器)(1)首先打开vivado hls,本人的版本是2017.2,点击创建一个新工程。(2)设置工程名和路径,顶层函数设置为add,创建一个新的C++程序,名字叫做adder.cpp,不用在testbench中添加文件。选择板子的时候搜索xc7z020clg400-1,这是PYNQ的板子号,选择完成。             (3)在左侧的菜单栏里选择Sourc...

bramblewalls的博客 1万+

【专栏导引贴】100+智能优化算法:从背景原理到代码实战(持续更新)

本专栏系统整理100+种现代优化算法,涵盖粒子群优化(PSO)、遗传算法(GA)、鲸鱼优化(WOA)等经典方法,以及白鲸优化(BWO)、非洲秃鹫优化(AVOA)等新兴算法。每篇详解包含生物启发原理、数学模型、代码实现及工程应用,采用统一编程风格,提供可直接运行的实例代码。专栏持续更新,旨在为研究者提供系统化的智能优化算法参考资料,实现从理论到实践的完整知识链。目前已收录23种算法,包括蚁群系统(ACS)、蝙蝠算法(BA)、天牛须搜索(BAS)等自然启发式优化方法。

qq_42212808的博客 3670

算法刷题自记录 | Leetcode844. 比较含退格的字符串(双指针)

题目 题目描述:给定 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 解

记录脑子记不下来的东西 329

微信小程序 - 真机调试请求异常 Provisional headers are shown,微信小程序开发者工具调试没问题就真机测试时出现请求报错(微信小程序请求接口提示Provisional h)

微信小程序开发 Request Headers: Provisional headers are shown,微信开发工具请求正常,真机调试和上线之后出现 Provisional headers are shown,微信小程序开发工具调试没问题,真机调试Provisional headers are shown,在开发工具调试,请求正常没问题,使用真机调试,请求异常,微信小程序真机调试时后台是本地服务器,显示“Provisional headers are shown”问题解决,微信小程序websocket

🏆 前端领域优质创作者 1万+

[leetcode 简单 双指针]844. 比较含退格的字符串

题目描述 给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。 注意:如果对空文本输入退格字符,文本继续为空。 示例 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 = “#a#c” 输出:true 解释:S 和 T

weixin_50088096的博客 143

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【LeetCode844】比较含退格的字符串--双指针法(简单易理解)

使用双指针法,可以用铅笔试着写出每一步的情况,帮助理解,总结规律,寻找思路。

qq_51022984的博客 180

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

LeetCode 844.比较含退格的字符串

以遍历字符串s为例,从左往右遍历过程中,若当前字符为 # ,则skipS++;只有当前字符不为 # 且skipS==0时,此字符才可参与比较。由于 # 号只会消除左边的一个字符,对于右边的字符无影响,所以我们选择从后往前遍历 s、t 字符串。在遍历过程中,如果遇到 # 号,则代表左边的一位字符将不会参与比较。若对比过程出现 s,t当前字符不匹配,则遍历结束,返回 false,若s,t都遍历结束,且都能一一匹配,则返回 true。s 会变成 "c",但 t 仍然是 "b"。s 和 t 都会变成 ""。

m0_52651829的博客 583

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

leetcode844. 比较含退格的字符串

​核心思路利用栈模拟退格操作,直接生成处理后的字符串进行比较。​优点实现简单,逻辑清晰,适合快速解决问题。​缺点空间复杂度为 O(n + m),若字符串较长可能占用较多内存。​优化方向​双指针逆向遍历:从后向前遍历字符串,跳过被退格符删除的字符,空间复杂度优化至 O(1)。​适用场景输入规模较小或对代码简洁性要求较高的场景。快速验证退格处理逻辑的正确性。

m0_49844997的博客 258

【Leetcode每日一题】844. 比较含退格的字符串|重构字符串/双指针

昨天的【Leetcode每日一题】27. 原地移除元素|神级理解双指针一文中,生动形象的为大家讲解如何理解双指针,受到了很好的反馈,今天趁热打铁,瑶瑶子为大家带来一道双指针的plus版本题目,会比昨天的难一点,但是本质和逻辑是一样的(就是两个人干活,男女搭配,干活不累!)

Yaoyao2024的博客 2712

力扣844 比较含退格的字符串--双指针

给定s和t两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回true。代表退格字符。如果对空文本输入退格字符,文本继续为空。trues 和 t 都会变成 "ac"。trues 和 t 都会变成 ""。falses 会变成 "c",但 t 仍然是 "b"。

qq_62035394的博客 1006

844. 比较含退格的字符串

844. 比较含退格的字符串 题目表述 给定 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” 输出:fal

秃头之路 7547

跟着Carl大佬学leetcode之844 比较含退格的字符串

1.C++ 中 printf输出string字符串不能直接printf(“%s”,str),可以借助str.c_str()函数对字符串str进行转换printf(“%s\n”,x.c_str()),再输出。2.str.popback(),str.push_back,str.empty()操作熟悉下…

进击的lab681 966

LeetCode 844 题:比较含退格的字符串

本题要求给定两个字符串s和t,当对它们进行退格处理后(表示退格操作),判断两者是否相等。

weixin_48941116的博客 883

[Day 9]-比较含退格的字符串

/将计数器初始化为0如果整个循环都没有返回false,那么两个字符串经过退格处理后是相等的。返回true。public://定义i在s字符串中长度//定义计数器while (i >= 0 || j >= 0) {//字符串没比较完的条件while (i >= 0) {//当i<0不存在skips++;//给计数器+1i--;//指针往前移动一位skips--;//如果这个数不是‘#’,计数器--i--;} else {//既不等于#,skip也不大于0,没有要删除的。

2401_82617188的博客 1082

【Leetcode刷题随笔】844 比较含退格的字符串

两种方法的时间复杂度都为O(N+M),其中 N 和 M 分别为字符串 S 和 T 的长度,都只需要遍历两字符串各一次。按自己能理解的方法去实现即可。

m0_59350620的博客 1465

LeetCode 844 比较含退格的字符串

LeetCode 844 比较含退格的字符串 力扣 844 比较含退格的字符串 | LeetCode 844 Backspace String Compare | 算尽天下系列第 11 期 | 栈/双指针 题目描述 给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。 样例 示例 1: 输入:S = “ab#c”, T = “ad#...

凝神长老和他的朋友们 377

LeetCode -844. 比较含退格的字符串(栈、双指针)

比较含退格的字符串 方法一(栈): 如果它是退格符,那么我们将栈顶弹出; 如果它是普通字符,那么我们将其压入栈中。 class Solution { public boolean backspaceCompare(String S, String T) { return build(S).equals(build(T)); } private String build(String str) { StringBuffer sb = new .

your_棒棒糖的博客 344
上一篇: 【简单】1800. 最大升序子数组和(两种方法,空间复杂度分别是:O(1)、O(n))
下一篇: 【双指针】141. 环形链表(三种方法:单指针,双指针,集合哈希)
菜菜2022
博客等级 码龄9年 67粉丝 1033原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值