1.题目详情
给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。
在 S 上反复执行重复项删除操作,直到无法继续删除。
在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。
2.解题思路
数据结构 栈
只需删除重复项即可,因此可以使用栈实现
每次添加时比较是否与栈顶元素相同
若相同则删除栈顶元素且不插入
若不相同则插入新元素
3.代码实现
class Solution:
def removeDuplicates(self, S: str) -> str:
stack = []
for i in S:
if stack and i == stack[-1]:
stack.pop()
else:
stack.append(i)
return "".join(stack)
4.知识点
栈