round 1
1 遍历字符串,如何和栈顶元素相同:出栈,如果和栈顶元素不同:入栈。
class Solution:
def removeDuplicates(self, S: str) -> str:
stack = []
for x in S:
if len(stack) == 0 or x != stack[-1]:
stack.append(x)
else:
stack.pop()
return ''.join(stack[:])
时间负责度为O(n),运行速度依然稀碎,看来代码能力还是有点差的
round 2
1 在设置列表时,在其中加任意字符,可以省去判断空集步骤
2 判断空集在每次循环中都要首先运行,占用时间较多
class Solution:
def removeDuplicates(self, S: str) -> str:
stack = [',']
for x in S:
if x != stack[-1]:
stack.append(x)
else:
stack.pop()
return ''.join(stack[1:])