比较含退格的字符串
给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。
示例 1:
输入:S = "ab#c", T = "ad#c"
输出:true
解释:S 和 T 都会变成 “ac”。
示例 2:
输入:S = "ab##", T = "c#d#"
输出:true
解释:S 和 T 都会变成 “”。
思路
- 运用了栈的思想,将字母存进栈中,遇到"#",弹出栈顶的元素
- 最后比较两个栈是否相等
新学到的
- 比较两个栈是否相等可以直接
return res1 == res2
- 当对两个字符串的操作一样的时候可以用一个函数
def func(s)
- res[:-1]表示除了最后一个的所有字符串
对比
自己写的
class Solution(object):
def backspaceCompare(self, S, T):
"""
:type S: str
:type T: str
:rtype: bool
"""
res1 = []
res2 = []
for i in range(len(S)):
if S[i] == "#":
if not res1 ==[]:
res1.pop()
else:
res1 = []
else:
res1.append(S[i])
for j in range(len(T)):
if T[j] == "#":
if not res2 ==[]:
res2.pop()
else:
res2 = []
else:
res2.append(T[j])
return res1 == res2
别人写的—更加简洁
class Solution(object):
def backspaceCompare(self, S, T):
def func(s):
res = ''
for x in S:
if x == "#":
res = res[:-1]
else:
res += x
return res
return func(S) == func(T)