

可以使用栈来模拟文本编辑器的行为,遇到普通字符就压入栈,遇到 # 就弹出栈顶元素。最终比较两个字符串处理后的结果是否相等。代码如下:
def backspaceCompare(s: str, t: str) -> bool:
def process(string):
stack = []
for char in string:
if char != '#':
stack.append(char)
elif stack:
stack.pop()
return ''.join(stack)
return process(s) == process(t)
# 测试
print(backspaceCompare("ab#c", "ad#c")) # True
print(backspaceCompare("ab##", "c#d#")) # True
print(backspaceCompare("a#c", "b")) # False
思路解析:
-
使用
process函数来处理字符串:-
遍历字符串,遇到正常字符加入栈。
-
遇到
#就弹出栈顶元素(如果栈非空)。
-
-
处理完
s和t后,将其转换为字符串并比较结果。
时间复杂度:
-
由于每个字符最多入栈和出栈一次,时间复杂度为 O(n)。
909

被折叠的 条评论
为什么被折叠?



