题目:

1 每个用户初始金额300
2
3 1、扣除规则
4 1)图书价格大于等于 100元,累计借出去天数小于等于15天,每本每天租金5元,累计超过15天的,超过的天数每天每本租金3元
5 2)图书价格大于等于 50元、小于100元,累计借出去天数小于等于15天,每本每天租金3元,累计超过15天的,超过的天数每天每本租金2元
6 3)图书价格小于 50元,每本每天租金1元
7
8 2、余额小于所借图书价格,不能借;可以继续借阅其他的书
9
10 3、租金最大不超过所借图书的价格
11
12 4、超期还书,每超过一天,另外扣1元
13
14 输出余额
15
16 例子:
17 [[130,5,11],[60,16,16],[10,11,11]]
18
19 输出:
20 182
21
22 解释:
23 130,5,11 实际11天,超期6天,则租金为 11*5+6 = 61
24 60,16,16 实际11天,有一天超过15天,则租金为 15*3 + 2 = 47
25 10,11,11 实际11天,11*1 = 11,大于图书价格10元,则租金为10
26

 

代码:

1 # @Author  :whyCai
2 # @Time :2021/2/22 9:44
3
4
5 from typing import List
6 """
7 计算剩余金额
8 """
9 class Solution:
10 def chargeBalance(self, histList: List[List[int]]) -> int:
11 initBalance = 300
12
13 histListLen = len(histList)
14 for i in range(histListLen):
15 #图书价格小于余额
16 if histList[i][0] < initBalance:
17 #判断图书价格再哪个区间
18 if histList[i][0] >=100:
19 #实际借书日期是否再15天内
20 chargeBalance = histList[i][2] * 5 if histList[i][2] <= 15 else 15 * 5 + (histList[i][2] -15) * 3
21 elif histList[i][0] >=50 and histList[i][0] <100:
22 chargeBalance = histList[i][2] * 3 if histList[i][2] <= 15 else 15 * 3 + (histList[i][2] -15) * 2
23 else:
24 chargeBalance = histList[i][2] * 1
25 # 判断是否超期还书
26 if histList[i][2] > histList[i][1]:
27 chargeBalance = chargeBalance + (histList[i][2] - histList[i][1]) * 1
28 #判断最大租金不超过所借图书价格
29 if chargeBalance > histList[i][0]:
30 chargeBalance = histList[i][0]
31 initBalance = initBalance - chargeBalance
32
33 return initBalance
34
35 print(Solution().chargeBalance([[130,5,11],[60,16,16],[10,11,11]]))