-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathfoodmenu.py
40 lines (31 loc) · 864 Bytes
/
foodmenu.py
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
35
36
37
38
39
40
from collections import defaultdict
def foodmenu(order, menu):
res = defaultdict(int)
queue = [menu[order]]
while queue:
menu_list = queue.pop(0)
while menu_list:
item = menu_list.pop(0)
# item.values()-- [1] or ["meat":...]
if type(item.values()[0]) == type(1):
res[item.keys()[0]] += item.values()[0]
else:
# sub component {water:100}
for each in item.values()[0]:
menu_list.append(each)
return res
def food(order, menu):
res = defaultdict(int)
queue = [menu[order]]
# [...]
while queue:
item_list = queue.pop(0)
while item_list:
item = item_list.pop(0)
if type(item.values()[0]) == type(1):
res[item.keys()[0]] += item.values()[0]
else:
for i in item.values()[0]:
menu_list.append(i)
menu = {"pizza":[{"floar":100},{"water":100},{"meat":[{"water":100}]}]}
print foodmenu("pizza", menu)