LeetCode 题解(190): Implement Queue using Stacks
来源:互联网 发布:梦幻西游物价软件 编辑:程序博客网 时间:2024/06/05 17:02
题目:
Implement the following operations of a queue using stacks.
- push(x) -- Push element x to the back of queue.
- pop() -- Removes the element from in front of queue.
- peek() -- Get the front element.
- empty() -- Return whether the queue is empty.
- You must use only standard operations of a stack -- which means only
push to top
,peek/pop from top
,size
, andis empty
operations are valid. - Depending on your language, stack may not be supported natively. You may simulate a stack by using a list or deque (double-ended queue), as long as you use only standard operations of a stack.
- You may assume that all operations are valid (for example, no pop or peek operations will be called on an empty queue).
数据结构。
C++版:
class Queue {public: stack<int> s1, s2; // Push element x to the back of queue. void push(int x) { s1.push(x); } // Removes the element from in front of queue. void pop(void) { if(s2.empty()) { while(!s1.empty()) { s2.push(s1.top()); s1.pop(); } } if(!s2.empty()) s2.pop(); } // Get the front element. int peek(void) { if(s2.empty()) { while(!s1.empty()) { s2.push(s1.top()); s1.pop(); } } if(!s2.empty()) return s2.top(); } // Return whether the queue is empty. bool empty(void) { return s1.empty() && s2.empty() ? true : false; }};
Java版:
class MyQueue { // Push element x to the back of queue. Stack<Integer> s1 = new Stack<>(); Stack<Integer> s2 = new Stack<>(); public void push(int x) { s1.push(x); } // Removes the element from in front of queue. public void pop() { if(s2.empty()) { while(!s1.empty()) s2.push(s1.pop()); } if(!s2.empty()) s2.pop(); } // Get the front element. public int peek() { if(s2.empty()) { while(!s1.empty()) s2.push(s1.pop()); } if(!s2.empty()) return s2.peek(); return -1; } // Return whether the queue is empty. public boolean empty() { return s1.empty() && s2.empty() ? true : false; }}
Python版:
class Queue(object): def __init__(self): """ initialize your data structure here. """ self.s1, self.s2 = [], [] def push(self, x): """ :type x: int :rtype: nothing """ self.s1.append(x) def pop(self): """ :rtype: nothing """ if len(self.s2) == 0: while len(self.s1) != 0: self.s2.append(self.s1[-1]) self.s1.pop() if len(self.s2) != 0: self.s2.pop() def peek(self): """ :rtype: int """ if len(self.s2) == 0: while len(self.s1) != 0: self.s2.append(self.s1[-1]) self.s1.pop() if len(self.s2) != 0: return self.s2[-1] return None def empty(self): """ :rtype: bool """ if len(self.s1) == 0 and len(self.s2) == 0: return True return False
0 0
- LeetCode 题解(190): Implement Queue using Stacks
- LeetCode题解:Implement Queue using Stacks
- Leetcode题解 232. Implement Queue using Stacks
- leetcode :Implement Queue using Stacks
- [LeetCode] Implement Queue using Stacks
- LeetCode Implement Queue using Stacks
- LeetCode || Implement Queue using Stacks
- leetcode Implement Queue using Stacks
- Leetcode Implement Queue using Stacks
- [LeetCode]Implement Queue using Stacks
- 【Leetcode】Implement Queue using Stacks
- LeetCode Implement Queue using Stacks
- Leetcode: Implement Queue using Stacks
- [leetcode] Implement Queue using Stacks
- 【leetcode】Implement Queue using Stacks
- [Leetcode]Implement Queue using Stacks
- [leetcode] Implement Queue using Stacks
- LeetCode-Implement Queue using Stacks
- [Amazon]Given 2 numbers. Find if they are consecutive gray (grey) code sequences
- Eclipse使用Maven构建web项目二
- centos7安装vlc播放器
- poj 2985 The k-th Largest Group (并查集x全局动态第k大)
- 一些不错的网站
- LeetCode 题解(190): Implement Queue using Stacks
- Win7系统与它的Virtualbox中安装的Ubuntu14.04共享信息的几种方法
- C中的常见库文件说明
- regex
- 再django中应用selenium做测试
- 一个93年弱鸡程序员来到深圳深入简出
- POJ 1141 解题报告
- [人月神话]读书笔记7--产品品质保障&&日常进度跟踪
- [人月神话]读书笔记8--软件产品需要的文档&&软件开发没有银弹(捷径)