題目:
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 總共為 61+47+10 = 118,余額 182
代碼:
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]]))