从品牌网站建设到网络营销策划,从策略到执行的一站式服务
题目描述
用两个队列来实现一个栈,完成栈的Push和Pop操作。 队列中的元素为int类型。
实现方式其实和两个栈模拟一个队列相似,但是区别在于这两个队列的作用和那两个栈的作用不一样。
class Solution:
"""
用两个队列模拟一个栈,如果两个队列的容量分别为M和N,其中M > N,那么模拟得到的栈的容量是N+1
因为假设先把queue1塞进N+2个,此时将元素出栈,则需要先将queue1的N+1个元素出队后压入queue2,
由于queue2的容量只有N,入队失败。因此,大容量是N+1
"""
def __init__(self):
# queue1和queue2都可以作为入栈的队列,也可以作为出栈的辅助队列,作用一样。不像用栈模拟
# 队列时一个stack是作为入队的栈,另一个stack作为出队的栈。
self.queue1 = []
self.queue2 = []
def push(self, node):
# 入栈的时候往非空的队列添加
if self.queue1:
self.queue1.append(node)
else:
self.queue2.append(node)
def pop(self):
if not self.queue1 and not self.queue2:
return None
# 出栈的时候需要先将非空队列中的前N-1个元素顺序压入另一个队列,然后是弹出最后一个元素
if self.queue1:
while len(self.queue1) > 1:
self.queue2.append(self.queue1.pop(0))
return self.queue1.pop(0)
else:
while len(self.queue2) > 1:
self.queue1.append(self.queue2.pop(0))
return self.queue2.pop(0)
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图