📅  最后修改于: 2023-12-03 15:28:37.890000             🧑  作者: Mango
给定一个由小写字母组成的字符串,将所有重复的字符从字符串中删除,并以相同的顺序返回新的字符串。
输出去重后的字符串。
输入:8 abcdbced
输出:abcdce
本题可以通过使用栈来进行求解,具体步骤如下:
在栈的基础操作上,进行一个判断,即可得到去重后的字符串。
def remove_duplicates(s: str) -> str:
stack = []
for char in s:
if not stack or char != stack[-1]:
stack.append(char)
else:
while stack and stack[-1] == char:
stack.pop()
stack.append(char)
return ''.join(stack)
时间复杂度:$O(n)$
空间复杂度:$O(n)$