Solve "cafe order checker" (again)
Perhaps my fifth iteration of solving this problem.
This commit is contained in:
parent
6ccdb06717
commit
c00eed469c
1 changed files with 34 additions and 0 deletions
34
scratch/facebook/interview-cake/cafe-order-checker.py
Normal file
34
scratch/facebook/interview-cake/cafe-order-checker.py
Normal file
|
@ -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!")
|
Loading…
Reference in a new issue