一、题目

二、解法
用栈的思想,新建一个list temp,对给定字符串S分两种情况:
1、当前字符!='#'时,temp加入当前字符
2、当前字符==’#‘时,temp pop最顶端的字符(前提非空)
三、代码
import operator
class Solution:
def backspaceCompare(self, S: str, T: str) -> bool:
def helper(S):
temp = []
for i in range(len(S)):
n = len(temp)
if S[i]!='#':
temp.append(S[i])
else:
if n>0:
del temp[n-1]
return temp
return helper(S)==helper(T)
四、复杂度分析
时间复杂度:O(n)
空间复杂度:O(n)
本文介绍了一种利用栈的思想来解决带有撤销功能的字符串比较问题的方法。通过遍历两个字符串,遇到非撤销字符时压入栈,遇到撤销字符时从栈顶弹出一个字符。最终比较两个操作后的栈是否相同即可得出结论。该方法时间复杂度为O(n),空间复杂度也为O(n)。
650

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



