动易网站管理系统全国代理网
2026/4/3 14:58:25 网站建设 项目流程
动易网站管理系统,全国代理网,wordpress发布pdf,有没有一些网站可以做问卷第一题 很经典的栈模拟队列 https://leetcode.cn/problems/implement-queue-using-stacks/submissions/693619507/ 这道题倒是没啥算法性质,主要还是模拟(话说模拟也不简单啊,挺考验思维能力的),一个栈的话只能先进后出所以怎么都无法实现先进先出的效果,所以肯定是两个栈,一个…第一题 很经典的栈模拟队列 https://leetcode.cn/problems/implement-queue-using-stacks/submissions/693619507/这道题倒是没啥算法性质,主要还是模拟(话说模拟也不简单啊,挺考验思维能力的),一个栈的话只能先进后出所以怎么都无法实现先进先出的效果,所以肯定是两个栈,一个模拟入队,一个模拟出队,具体实现时是一个栈作为压入栈在压入数据时只往这个栈中压入记为In_stack另一个栈只作为弹出栈在弹出数据时只从这个栈弹出记为out_stack。因为数据压入栈的时候顺序是先进后出的。那么只要把In_stack的数据再压入out_stack中顺序就变回来了,这听上去简单但是有两个要注意:一次性全部压入从in_stack向out_stack转移时必须一次性转移所有元素。非空不压入只要out_stack不为空就绝对不能进行转移。违反1的情况举例15依次压入in_stackin_stack的栈顶到栈底为51从in_stack压入out_stack时只将5和4压入了out_stackout_stack还剩下1、2、3没有压入。此时如果用户想进行弹出操作那么4将最先弹出与预想的队列顺序就不一致。违反2的情况举例15依次压入in_stackin_stack将所有的数据压入out_stack此时从out_stack的栈顶到栈底就变成了15。此时又有610依次压入in_stackout_stack不为空in_stack不能向其中压入数据。如果违反2压入了out_stack从out_stack的栈顶到栈底就变成了610、15。那么此时如果用户想进行弹出操作6将最先弹出与预想的队列顺序就不一致.class MyQueue: def __init__(self): self.in_stack [] self.out_stack [] def push(self, x: int) - None: self.in_stack.append(x) def pop(self) - int: self._help() return self.out_stack.pop() def peek(self) - int: self._help() return self.out_stack[-1] def empty(self) - bool: return not self.in_stack and not self.out_stack def _help(self): if not self.out_stack: with self.in_stack: self.out_stack.append(self.in_stack.pop())def _help(self):# 规则2只有out_stack为空时才转移if not self.out_stack:# 规则1一次性转移in_stack中的所有元素while self.in_stack: # 这个while循环保证了一次性全部self.out_stack.append(self.in_stack.pop())

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询