题目浅析

  • 想查看原题可以点击题目链接

  • 简单地说,就是给两个字符串,串中的 ‘#’ 被当作退格符,要求处理完退格符后,判断两个字符串是否相等。

思路分享

  • 只要维护两个栈,在推入时 push(append),弹出时 pop 即可。

  • 重点是学习 Python 是如何模拟栈的,在 C++ 中有对应的 stl,就算不用标准 stack,也能用 vector 模拟。Python 中是先用 list 的 append 和 pop 方法,最后运用 join 把 list 里面的各个元素粘合起来。

  • "".join(stack)的意思就是以 "" 内容作为连接符(这里就是没有任何内容),把 stack 的元素连成字符串。

代码解答(强烈建议自行解答后再看)

  • 参考题解
1
2
3
4
5
6
7
8
9
10
11
class Solution:
def backspaceCompare(self, s: str, t: str) -> bool:
def backspace(s: str):
stack = list()
for c in s:
if c != '#':
stack.append(c)
elif stack:
stack.pop()
return "".join(stack)
return backspace(s) == backspace(t)