Skip to content

Commit 46ff2f2

Browse files
committedMar 1, 2020
2020-03-01
1 parent 202badb commit 46ff2f2

File tree

1 file changed

+12
-21
lines changed

1 file changed

+12
-21
lines changed
 

‎0225.用队列实现栈/0225-用队列实现栈.py

+12-21
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,44 @@
1+
from collections import deque
12
class MyStack(object):
2-
33
def __init__(self):
44
"""
55
Initialize your data structure here.
66
"""
7-
self.queue1 = []
8-
self.queue2 = []
7+
self.q1 = deque()
8+
self.q2 = deque()
99

1010
def push(self, x):
1111
"""
1212
Push element x onto stack.
1313
:type x: int
1414
:rtype: None
1515
"""
16-
self.queue1.append(x)
17-
18-
while len(self.queue1) > 1:
19-
self.queue2.append(self.queue1[0])
20-
self.queue1 = self.queue1[1:]
16+
self.q1.append(x)
17+
while self.q2:
18+
self.q1.append(self.q2.popleft())
19+
self.q2 = self.q1
20+
self.q1 = deque()
2121

22-
23-
# print self.queue1, self.queue2
2422
def pop(self):
2523
"""
2624
Removes the element on top of the stack and returns that element.
2725
:rtype: int
2826
"""
29-
# print self.queue1, self.queue2
30-
top = self.queue1[0]
31-
self.queue1, self.queue2 = self.queue2, []
32-
while len(self.queue1) > 1:
33-
self.queue2.append(self.queue1[0])
34-
self.queue1 = self.queue1[1:]
35-
return top
36-
27+
return self.q2.popleft()
3728

3829
def top(self):
3930
"""
4031
Get the top element.
4132
:rtype: int
4233
"""
43-
return self.queue1[0]
44-
34+
return self.q2[0]
35+
4536
def empty(self):
4637
"""
4738
Returns whether the stack is empty.
4839
:rtype: bool
4940
"""
50-
return not self.queue1 and not self.queue2
41+
return not self.q2
5142

5243

5344
# Your MyStack object will be instantiated and called as such:

0 commit comments

Comments
 (0)