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 都会变成 “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) 的空间复杂度解决该问题吗?

二、解题思路

可以通过两个栈存储S和T中的字母,如果遇到了#,则a或b出栈,否则继续添加元素,直到添加完毕,即可比较。

三、代码

class Solution:
    def backspaceCompare(self, S: str, T: str) -> bool:
        a = []
        b = []
        for i in range(len(S)):
            if S[i] != '#':
                a.append(S[i])
            elif S[i] == '#' and a != []:
                a.pop()
        for i in range(len(T)):
            if T[i] != '#':
                b.append(T[i])
            elif T[i] == '#' and b != []:
                b.pop()
        return a == b

if __name__ == '__main__':
    S = "ab#c"
    T = "ad#c"
    s = Solution()
    ans = s.backspaceCompare(S, T)
    print(ans)
悲恋花丶无心之人 CSDN认证博客专家 深度学习 神经网络 Pytorch
计算机视觉在读研究生,熟悉Pytorch,MXNet,TensorFlow,Keras等深度学习框架,主要涉及的领域有目标检测,语义分割,超分辨率重建,行人重识别等。
个人GitHub网址为:https://github.com/nickhuang1996
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付 29.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值