題目
Pete likes to bake some cakes. He has some recipes and ingredients. Unfortunately he is not good in maths. Can you help him to find out, how many cakes he could bake considering his recipes?
Write a function cakes(), which takes the recipe (object) and the available ingredients (also an object) and returns the maximum number of cakes Pete can bake (integer). For simplicity there are no units for the amounts (e.g. 1 lb of flour or 200 g of sugar are simply 1 or 200). Ingredients that are not present in the objects, can be considered as 0.
# must return 2
cakes({flour: 500, sugar: 200, eggs: 1}, {flour: 1200, sugar: 1200, eggs: 5, milk: 200})
# must return 0
cakes({apples: 3, flour: 300, sugar: 150, milk: 100, oil: 100}, {sugar: 500, flour: 2000, milk: 2000})
第一個參數(shù)為做一個蛋糕所需的材料,第二個參數(shù)為已給的材料菇怀,返回值為最多可做幾個蛋糕
我的笨蛋解法
def cakes(recipe,available):
amount = []
for (k,v) in recipe.items():
m = available.get(k,0)
amount.append(int(m)//v)
return min(amount)
大神的一句話解法
def cakes(recipe, available):
return min(available.get(k, 0)//v for k,v in recipe.iteritems())
吐槽
//在簡書的代碼框里是默認成注釋了嗎…