用两个栈实现队列
来源:互联网 发布:淘宝自动回复设置技巧 编辑:程序博客网 时间:2024/06/05 17:25
牛客网 《剑指offer》
时间限制:1秒
空间限制:32768K
热度指数:145526
本题知识点: 队列
栈
题目描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
解题思路
队列经过一个栈,将反序输出,输出的队列再经过一个栈,又一次反序,变回了原来的顺序
注意:当要把第一个栈的元素弹出转移到第二个栈时,必须把第一个栈此时所有的元素都弹出,否则会乱序
程序
# -*- coding:utf-8 -*-class Solution: def __init__(self): self.stack1 = [] self.stack2 = [] def push(self, node): # write code here self.stack1.append(node) def pop(self): # return xx if len(self.stack2) == 0: for _ in range(len(self.stack1)): self.stack2.append(self.stack1.pop()) if len(self.stack2) == 0: return None else: return self.stack2.pop()
结果
运行时间:28ms占用内存:5768k
阅读全文
0 0
- 用两个栈实现队列 & 用两个队列实现栈
- 用两个队列实现栈&用两个栈实现队列
- 用两个栈实现队列 & 两个队列实现一个栈
- 两个栈实现队列&&用两个队列实现一个栈
- 用两个栈实现队列 & 两个队列实现栈
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个队列实现栈
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个队列实现栈
- 用两个栈实现队列
- 用两个队列实现栈
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个栈实现队列
- 用两个栈实现队列
- win10系统如何进入BIOS
- C++文件操作详解(ifstream、ofstream、fstream)
- 关于Android面试中如何应对内存优化
- 实训第六天
- 国安家知识
- 用两个栈实现队列
- 程序19
- android adb 捕获屏幕截图的命令
- Python操作文件和目录
- js中递归实现的方法及其区别
- 【错误解决】Spring JPA的错误及其解决方案
- Android Framebuffer介绍及使用
- leetcode 93. Restore IP Addresses DFS深度优先遍历
- 程序20