leetcode_844. 比较含退格的字符串

举报
悲恋花丶无心之人 发表于 2021/02/03 01:26:54 2021/02/03
【摘要】 目录 一、题目内容 二、解题思路 三、代码 一、题目内容 给定 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出栈,否则继续添加元素,直到添加完毕,即可比较。

三、代码


  
  1. class Solution:
  2. def backspaceCompare(self, S: str, T: str) -> bool:
  3. a = []
  4. b = []
  5. for i in range(len(S)):
  6. if S[i] != '#':
  7. a.append(S[i])
  8. elif S[i] == '#' and a != []:
  9. a.pop()
  10. for i in range(len(T)):
  11. if T[i] != '#':
  12. b.append(T[i])
  13. elif T[i] == '#' and b != []:
  14. b.pop()
  15. return a == b
  16. if __name__ == '__main__':
  17. S = "ab#c"
  18. T = "ad#c"
  19. s = Solution()
  20. ans = s.backspaceCompare(S, T)
  21. print(ans)

文章来源: nickhuang1996.blog.csdn.net,作者:悲恋花丶无心之人,版权归原作者所有,如需转载,请联系作者。

原文链接:nickhuang1996.blog.csdn.net/article/details/109163133

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。