每日kata~08~Pete, the baker

题目

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})

第一个参数为做一个蛋糕所需的材料,第二个参数为已给的材料,返回值为最多可做几个蛋糕

我的笨蛋解法

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())

吐槽

//在简书的代码框里是默认成注释了吗…


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容