classMyQueue:def__init__(self):"""
in主要负责push,out主要负责pop
"""
self.stack_in =[]
self.stack_out =[]defpush(self, x:int)->None:"""
有新元素进来,就往in里面push
"""
self.stack_in.append(x)defpop(self)->int:"""
Removes the element from in front of queue and returns that element.
"""if self.empty():returnNoneif self.stack_out:return self.stack_out.pop()else:for i inrange(len(self.stack_in)):
self.stack_out.append(self.stack_in.pop())return self.stack_out.pop()defpeek(self)->int:"""
Get the front element.
"""
ans = self.pop()
self.stack_out.append(ans)return ans
defempty(self)->bool:"""
只要in或者out有元素,说明队列不为空
"""returnnot(self.stack_in or self.stack_out)
classSolution:defremoveDuplicates(self, s:str)->str:
res =list()for item in s:if res and res[-1]== item:
res.pop()else:
res.append(item)return"".join(res)# 字符串拼接