
这里的核心思想就是反推,从后向前进行比较
class Solution:
def backspaceCompare(self, S: str, T: str) -> bool:
i, j = len(S) - 1, len(T) - 1
skipS = skipT = 0
while i >= 0 or j >= 0:
while i >= 0:
if S[i] == "#":
skipS += 1
i -= 1
elif skipS > 0:
skipS -= 1
i -= 1
else:
break
while j >= 0:
if T[j] == "#":
skipT += 1
j -= 1
elif skipT > 0:
skipT -= 1
j -= 1
else:
break
if i >= 0 and j >= 0:
if S[i] != T[j]:
return False
elif i >= 0 or j >= 0:
return False
i -= 1
j -= 1
return True
这篇博客介绍了一种字符串比较的算法,通过反向回溯的方式处理包含删除字符(如'#')的情况。类`Solution`中的`backspaceCompare`方法实现了这一逻辑,从字符串末尾开始比较,遇到删除字符时跳过,直到找到不匹配的字符或遍历结束。该方法对于理解和实现字符串操作具有一定的参考价值。
477

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



