1 class Cashier:
 2     def __init__(self, n: int, discount: int, products: 'List[int]', prices: 'List[int]'):
 3         self.customer_num = 0
 4         self.dic = {}
 5         m = len(products)
 6         for i in range(m):
 7             self.dic[products[i]] = prices[i]
 8         self.n = n
 9         self.discount = discount
10 
11 
12     def getBill(self, product: 'List[int]', amount: 'List[int]') -> float:
13         self.customer_num += 1
14         self.customer_num %= self.n
15         m = len(product)
16         total_amount = 0
17         for i in range(m):
18             productid = product[i]
19             amt = amount[i]
20             total_amount += (self.dic[productid] * amt)
21         if self.customer_num == 0:
22             total_amount = total_amount - (self.discount * total_amount) / 100
23         return total_amount

算法思路:将products[]与prices[]建立映射字典,这样可以方便查询每一种商品对应的单价。

每增加一个用户,累加一次用户数量,并用n进行求模运算,每第n个用户就计算折扣。

posted on 2020-02-23 13:08  Sempron2800+  阅读(145)  评论(0编辑  收藏  举报