diff options
author | William Carroll <wpcarro@gmail.com> | 2020-11-21T16·31+0000 |
---|---|---|
committer | William Carroll <wpcarro@gmail.com> | 2020-11-21T16·31+0000 |
commit | c00eed469ccd5f4b53d98ceeeba32963dd593ed8 (patch) | |
tree | 69e5cb90a41f17dd3ba81e93f6c4c089caefc1b6 | |
parent | 6ccdb067174c603ab76cf359b7057a2e33fd363c (diff) |
Solve "cafe order checker" (again)
Perhaps my fifth iteration of solving this problem.
-rw-r--r-- | scratch/facebook/interview-cake/cafe-order-checker.py | 34 |
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!") |