20170630-leetcode-225 Implement Stack using Queues
来源:互联网 发布:yum配置 编辑:程序博客网 时间:2024/06/06 08:43
1.Description
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).
解读:用栈实现队列,在Python里面可以考虑使用deque
2.Solution
思路:使用双向队列dequeue
压栈:
1)使用另外的变量存储要压栈的数据,然后把原来的队列extend后面
2)只使用数据本身的队列,首先把压栈的数据append原来的队列,然后遍历前面n-1个数据,popleft同时append到这个队列中后面
弹出:双向队列popleft
top():取出双向队列的第一个元素
import collectionsclass MyStack(object): def __init__(self): """ Initialize your data structure here. """ self._queue=collections.deque() def push(self, x): """ Push element x onto stack. :type x: int :rtype: void """ q=self._queue q.append(x)#把x加入到列表中 for _ in range(len(q)-1):#把要添加的元素之前 q.append(q.popleft()) def pop(self): """ Removes the element on top of the stack and returns that element. :rtype: int """ return self._queue.popleft() def top(self): """ Get the top element. :rtype: int """ return self._queue[0] def empty(self): """ Returns whether the stack is empty. :rtype: bool """ return not len(self._queue)
- 20170630-leetcode-225 Implement Stack using Queues
- Implement Stack using Queues - LeetCode 225
- LeetCode 225: Implement Stack using Queues
- Leetcode[225]-Implement Stack using Queues
- leetcode 225: Implement Stack using Queues
- leetcode 225 Implement Stack using Queues
- leetcode 225:Implement Stack using Queues
- [Leetcode 225, Easy] Implement Stack using Queues
- LeetCode---(225)Implement Stack using Queues
- leetcode-225-Implement Stack using Queues
- leetCode #225 Implement Stack using Queues
- [leetcode-225]Implement Stack using Queues(c++)
- [LeetCode 225] Implement Stack using Queues
- Leetcode #225 Implement Stack using Queues
- [leetcode 225] Implement Stack using Queues
- Leetcode NO.225 Implement Stack using Queues
- LeetCode(225) Implement Stack using Queues
- LeetCode 225 Implement Stack using Queues
- net-snmp获取各个类型的数据
- Oracle数据库IO问题分析利器(一)
- 内存四区模型
- hadoop学习笔记--7.MapReduce的工作机制
- Android中破解应用签名校验的后续问题处理方案(闪退和重启现象以及无效问题)
- 20170630-leetcode-225 Implement Stack using Queues
- (183)图像调整
- linux:ls、ls -l、ls -al区别
- Postgresql 分布式事务JTA实现Atomikos与Spring集成实践
- mysql 文本处理函数
- 解决SVN Clean up失败问题
- MySQL日志切割工具logrotate
- 【JSOI2015】bzoj4487 染色问题
- Linux下使用qperf命令来测试网络带宽和网络延迟