title: LEETCODE-DAY10
date: 2024-03-01 17:06:04
tags:
今日题目:232.用栈实现队列、225. 用队列实现栈
T1
class MyQueue:
def __init__(self):
self.stackin=list()
self.stackout=list()
def push(self, x: int) -> None:
self.stackin.append(x)
def pop(self) -> int:
if self.stackout:
return(self.stackout.pop())
else:
for i in range(len(self.stackin)):
self.stackout.append(self.stackin.pop())
return(self.stackout.pop())
def peek(self) -> int:
ans=self.pop()
self.stackout.append(ans)
return ans
def empty(self) -> bool:
return not self.stackin and not self.stackout
这里peek的写法很好,调用了之前写的self.pop
避免重复劳动
T2
class MyStack:
def __init__(self):
self.deque_ori = deque()
def push(self, x: int) -> None:
self.deque_ori.append(x)
for _ in range(0, len(self.deque_ori)-1):
x = self.deque_ori.popleft()
self.deque_ori.append(x)
def pop(self) -> int:
return self.deque_ori.popleft()
def top(self) -> int:
result = self.deque_ori.popleft()
self.push(result)
return result
return self.deque_ori[0]
def empty(self) -> bool:
return len(self.deque_ori) == 0