Python 程序用于计算卖鞋能赚多少钱
pythonserver side programmingprogramming更新于 2025/12/19 7:08:17
假设在一家鞋店中,数组 size 中有 n 种不同尺寸的鞋子,数组名为 size,还有 m 个顾客的鞋子对列表,名为 demand,其中 demand[i] 包含 (shoe_size, money),因此需求为 i 的顾客需要一双尺寸为 shoe_size 的鞋子 并且他/她可以支付给定金额。我们必须找出店主通过出售这些鞋子可以赚多少钱。
因此,如果输入为鞋子 = [2,3,4,5,6,8,7,6,5,18] 需求 = [(6,55), (6,45), (6,55), (4,40), (18,60), (10,50)],则输出将为 200,因为
第一个人将以成本 55 购买尺码 6 的鞋子
第二个人将以成本 45 购买尺码 6 的鞋子
库存中没有尺码 6 的鞋子
第四个人将以成本 40 购买尺码 4 的鞋子
第五个人将以成本60
第六个人得不到鞋子,因为没有 10 号的鞋子
总收入 55 + 45 + 40 + 60 = 200。
为了解决这个问题,我们将遵循以下步骤 −
- n := 需求量
- sizes := 包含基于尺码的鞋子频率的地图
- earn := 0
- 对于 0 到 n - 1 范围内的 i,执行
- (sz, price) := demand[i]
- 如果 sizes 中存在尺码为 sz 的鞋子,则
- sizes[sz] := size[sz] - 1
- earn := earn + price
- 返回 earn
示例
让我们看看下面的实现以便更好地理解
from collections import Counter
def solve(shoes, demand):
n = len(demand)
sizes = Counter(shoes)
earn = 0
for i in range(n):
sz, price = demand[i]
if sizes[sz]:
sizes[sz] -= 1
earn += price
return earn
shoes = [2,3,4,5,6,8,7,6,5,18]
demand = [(6,55), (6,45), (6,55), (4,40), (18,60), (10,50)]
print(solve(shoes, demand))
输入
[2,3,4,5,6,8,7,6,5,18], [(6,55), (6,45), (6,55), (4,40), (18,60), (10,50)]
输出
200
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

