about summary refs log tree commit diff
path: root/scratch/facebook/interview-cake/cafe-order-checker.py
blob: 688c340b987b58db4a22c6bc021b10db2b72f92e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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!")