File tree 1 file changed +37
-0
lines changed
scripts/algorithms/I/Implement Stack using Queues
1 file changed +37
-0
lines changed Original file line number Diff line number Diff line change
1
+ // Runtime : 44 ms (Top 15.83 % ) | Memory : 16.50 MB (Top 18.94 % )
2
+
3
+ class MyStack :
4
+
5
+ def __init__ (self ):
6
+ self .q1 = deque ()
7
+ self .q2 = deque ()
8
+
9
+ def push (self , x : int ) -> None :
10
+ self .q1 .append (x )
11
+
12
+ def pop (self ) -> int :
13
+ while len (self .q1 ) > 1 :
14
+ self .q2 .append (self .q1 .popleft ())
15
+
16
+ popped_element = self .q1 .popleft ()
17
+
18
+ # Swap q1 and q2
19
+ self .q1 , self .q2 = self .q2 , self .q1
20
+
21
+ return popped_element
22
+
23
+ def top (self ) -> int :
24
+ while len (self .q1 ) > 1 :
25
+ self .q2 .append (self .q1 .popleft ())
26
+
27
+ top_element = self .q1 [0 ]
28
+
29
+ self .q2 .append (self .q1 .popleft ())
30
+
31
+ # Swap q1 and q2
32
+ self .q1 , self .q2 = self .q2 , self .q1
33
+
34
+ return top_element
35
+
36
+ def empty (self ) -> bool :
37
+ return len (self .q1 ) == 0
You can’t perform that action at this time.
0 commit comments