860. 柠檬水找零
image-20201210110411396
思路
模拟就行 现在假设你是小卖部老板,那么你来一张5块,你就收下,来一张10块,你的5块就-1,十块+1. 如果来的是20的,当你没有10块的时候,你就5块-3,当你有10块,你就10块-1并且5块-1
class Solution: def lemonadeChange(self, bills: List[int]) -> bool: # 由于找零只关心5块和10块的数量,并不关心20的数量,所以只定义2个变量 # 分别是f表示还有多少5块钱,t表示还有多少10块钱 f, t = 0, 0 for b in bills: if b == 5: # 如果是5块,直接+1,因为不需要找零 f += 1 elif b == 10: # 来了张10块 没有5块找,直接return False(找不开) if f == 0: return False # 否则5块-1 10块+1 f -= 1 t += 1 else: # 没有10块直接找3个5块,如果没有3个5块,说明找不开 if t == 0: if f < 3: return False f -= 3 else: t -= 1 # 有10块没有5块,也直接算找不开 if f == 0: return False f -= 1 return True