📅  最后修改于: 2023-12-03 14:49:54.138000             🧑  作者: Mango
在编程中,有时需要将字符串中的重复相邻字符删除,并仅保留一个字符。可以使用堆栈来实现这个操作,遍历字符串,将每个字符与堆栈顶部的元素进行比较,如果相同,则弹出堆栈,否则将该字符压入堆栈。最后,将堆栈中的字符组合成一个新的字符串并返回。
首先,创建一个空堆栈来存储字符。遍历字符串中的每个字符,将其与堆栈顶部元素进行比较。如果当前字符与堆栈顶部元素一致,则弹出堆栈;否则,将当前字符压入堆栈。最后,将堆栈中的字符组合成一个新的字符串并返回。
def remove_adjacent_duplicates(s: str) -> str:
stack = []
for c in s:
if stack and c == stack[-1]:
stack.pop()
else:
stack.append(c)
return ''.join(stack)
s = "abbaca"
print(remove_adjacent_duplicates(s)) # 输出 'ca'
使用堆栈可以快速并且易于实现地删除字符串中的相邻重复字符。以上代码具有普适性,可以用于任何需要删除相邻重复字符的问题。