python:剑指 Offer 09. 用两个栈实现队列
草稿
class CQueue:
def __init__(self):
self.stk_in = []
self.stk_out = []
def appendTail(self, value: int) -> None:
self.stk_in.append(value)
def deleteHead(self) -> int:
# 俩个if 顺序是不能变化的
if self.stk_out == []:
while self.stk_in != []:
self.self_out.append(self.stk_in.pop())
if self.self_out != []:
return self.self_out.pop()
else return -1
queue = StackQueue()
queue.en_queue(1)
queue.en_queue(2)
queue.en_queue(3)
print(queue.de_queue())
print(queue.de_queue())
queue.en_queue(5)
print(queue.de_queue())
示例
输入:
["CQueue","appendTail","deleteHead","deleteHead"]
[[],[3],[],[]]
输出:[null,null,3,-1]
输入:
["CQueue","deleteHead","appendTail","appendTail","deleteHead","deleteHead"]
[[],[],[5],[2],[],[]]
输出:[null,-1,null,null,5,2]