用两个栈实现队列_牛客题霸_牛客网arrow-up-right
问题简述
用两个栈来实现一个队列,使用n个元素来完成 n 次在队列尾部插入整数(push)和n次在队列头部删除整数(pop)的功能。 队列中的元素为int类型。保证操作合法,即保证pop操作时队列内已有元素。
思路
详见代码
# -*- coding:utf-8 -*- class Solution: def __init__(self): self.s1 = [] self.s2 = [] def push(self, node): self.s1.append(node) def pop(self): # if self.s2: # return self.s2.pop() # else: # while self.s1: # self.s2.append(self.s1.pop()) # return self.s2.pop() # 更简洁的写法 if not self.s2: while self.s1: self.s2.append(self.s1.pop()) return self.s2.pop()
Last updated 3 years ago