Leetcode: Implement Stack using Queues
2015-08-26 10:50
507 查看
Question
Implement the following operations of a stack using queues.push(x) – Push element x onto stack.
pop() – Removes the element on top of the stack.
top() – Get the top element.
empty() – Return whether the stack is empty.
Notes:
You must use only standard operations of a queue – which means only push to back, peek/pop from front, size, and is empty operations are valid.
Depending on your language, queue may not be supported natively. You may simulate a queue by using a list or deque (double-ended queue), as long as you use only standard operations of a queue.
You may assume that all operations are valid (for example, no pop or top operations will be called on an empty stack).
Update (2015-06-11):
The class name of the Java function had been updated to MyStack instead of Stack.
Credits:
Special thanks to @jianchao.li.fighter for adding this problem and all test cases.
Show Tags
Show Similar Problems
Solution
Code
[code]class Stack(object): def __init__(self): """ initialize your data structure here. """ self.queue1 = [] self.queue2 = [] def push(self, x): """ :type x: int :rtype: nothing """ self.queue1.append(x) def pop(self): """ :rtype: nothing """ while len(self.queue1)>1: temp = self.queue1[0] self.queue2.append(temp) self.queue1 = self.queue1[1:] self.queue1 = self.queue2[:] self.queue2 = [] def top(self): """ :rtype: int """ res = None while len(self.queue1)>1: temp = self.queue1[0] self.queue2.append(temp) self.queue1 = self.queue1[1:] if self.queue1!=[]: res = self.queue1[0] self.queue2.append(res) self.queue1 = self.queue2[:] self.queue2 = [] return res def empty(self): """ :rtype: bool """ return len(self.queue1)==0 and len(self.queue2)==0
相关文章推荐
- UITableViewCell分割线左边顶格
- 【生活小记】关闭miui系统插拔usb提示音
- STL源码剖析——deque的实现原理和使用方法详解
- 黑马程序员_常用API之BufferString、StringBuilder
- iOS GPUImage的简单说明
- UI18_单例
- poj 1019 Number Sequence
- UIButton 点击传递两个参数的实现
- AmazeUI基本样式
- Extjs4中up()和down()的用法以及组件查找_ComponentQuery类
- UIday01_zy: 用iPhone6模拟器设计一个6行5列的label,并把百家姓放进去
- 【转】Sprague-Grundy函数
- 改变UITextField placeHolder颜色、字体
- UIRefreshControl 问题
- ReceiveQueue
- UI框架的几种方式
- iOS开发学习--纯代码 UIScrollView 无限循环的实现——代码类封装
- Leetcode: Implement Queue using Stacks
- 粒子显示在ngui之间的方法
- mysql数据库优化日志(更)-howyue