about summary refs log tree commit diff
path: root/scratch/facebook/queue-two-stacks.py
diff options
context:
space:
mode:
Diffstat (limited to 'scratch/facebook/queue-two-stacks.py')
-rw-r--r--scratch/facebook/queue-two-stacks.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/scratch/facebook/queue-two-stacks.py b/scratch/facebook/queue-two-stacks.py
new file mode 100644
index 000000000000..a71abeb00552
--- /dev/null
+++ b/scratch/facebook/queue-two-stacks.py
@@ -0,0 +1,20 @@
+from stack import Stack
+
+class Queue(object):
+    def __init__(self):
+        self.lhs = Stack()
+        self.rhs = Stack()
+
+    def enqueue(self, x):
+        self.rhs.push(x)
+
+    def dequeue(self, x):
+        y = self.rhs.pop()
+        while y:
+            self.lhs.push(y)
+            y = self.rhs.pop()
+        result = self.lhs.pop()
+        y = self.lhs.pop()
+        while y:
+            self.rhs.push(y)
+        return result