about summary refs log tree commit diff
path: root/scratch/facebook/interview-cake/cafe-order-checker.py
diff options
context:
space:
mode:
authorWilliam Carroll <wpcarro@gmail.com>2020-11-21T16·31+0000
committerWilliam Carroll <wpcarro@gmail.com>2020-11-21T16·31+0000
commitc00eed469ccd5f4b53d98ceeeba32963dd593ed8 (patch)
tree69e5cb90a41f17dd3ba81e93f6c4c089caefc1b6 /scratch/facebook/interview-cake/cafe-order-checker.py
parent6ccdb067174c603ab76cf359b7057a2e33fd363c (diff)
Solve "cafe order checker" (again)
Perhaps my fifth iteration of solving this problem.
Diffstat (limited to 'scratch/facebook/interview-cake/cafe-order-checker.py')
-rw-r--r--scratch/facebook/interview-cake/cafe-order-checker.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/scratch/facebook/interview-cake/cafe-order-checker.py b/scratch/facebook/interview-cake/cafe-order-checker.py
new file mode 100644
index 000000000000..688c340b987b
--- /dev/null
+++ b/scratch/facebook/interview-cake/cafe-order-checker.py
@@ -0,0 +1,34 @@
+def valid(take_out, dine_in, served):
+    # edge case
+    if len(take_out) + len(dine_in) != len(served):
+        return False
+    i = 0
+    j = 0
+    k = 0
+    while i < len(take_out) and j < len(dine_in):
+        if take_out[i] == served[k]:
+            i += 1
+        elif dine_in[j] == served[k]:
+            j += 1
+        else:
+            return False
+        k += 1
+    # take out
+    while i < len(take_out):
+        if take_out[i] != served[k]:
+            return False
+        i += 1
+    # dine in
+    while j < len(dine_in):
+        if dine_in[j] != served[k]:
+            return False
+        j += 1
+    return True
+
+take_out = [17, 8, 24]
+dine_in  = [12, 19, 2]
+served   = [17, 8, 12, 19, 24, 2]
+result = valid(take_out, dine_in, served)
+print(result)
+assert result
+print("Success!")