Python程序:计算卖鞋收入


假设一家鞋店有n双不同尺寸的鞋子,尺寸存放在名为size的数组中,还有一个包含m个顾客需求的列表demand,其中demand[i]包含(鞋码, 价格),表示顾客i需要鞋码为shoe_size的鞋子,并且可以支付给定金额。我们需要计算店主通过销售这些鞋子可以赚多少钱。

例如,如果输入是shoes = [2,3,4,5,6,8,7,6,5,18],demand = [(6,55), (6,45), (6,55), (4,40), (18,60), (10,50)],则输出为200,因为:

  • 第一个顾客将以55元的价格购买尺码为6的鞋子

  • 第二个顾客将以45元的价格购买尺码为6的鞋子

  • 库存中没有尺码为6的鞋子了

  • 第四个顾客将以40元的价格购买尺码为4的鞋子

  • 第五个顾客将以60元的价格购买尺码为18的鞋子

  • 第六个顾客将买不到鞋子,因为没有尺码为10的鞋子


总收入为55 + 45 + 40 + 60 = 200。


为了解决这个问题,我们将遵循以下步骤:

  • n := demand 的大小
  • sizes := 一个映射,包含基于鞋码的鞋子数量
  • earn := 0
  • for i in range 0 to n - 1:
    • (sz, price) := demand[i]
    • 如果sizes中存在尺码为sz的鞋子,则:
      • sizes[sz] := sizes[sz] - 1
      • earn := earn + price
  • return 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

更新于:2021年10月11日

浏览量:334

开启您的职业生涯

完成课程获得认证

开始学习
广告