leetcode_844. 比较含退格的字符串
【摘要】 目录
一、题目内容
二、解题思路
三、代码
一、题目内容
给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。
注意:如果对空文本输入退格字符,文本继续为空。
示例 1:
输入:S = "ab#c", T = "ad#c" 输出:true 解释:S 和 T 都会变成 “ac...
目录
一、题目内容
给定 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)
文章来源: nickhuang1996.blog.csdn.net,作者:悲恋花丶无心之人,版权归原作者所有,如需转载,请联系作者。
原文链接:nickhuang1996.blog.csdn.net/article/details/109163133
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)