# LeetCode: 860. 柠檬水找零¶

## 1、题目描述¶

输入：[5,5,5,10,20]



输入：[5,5,10]



输入：[10,10]



输入：[5,5,10,10,20]



• 0 <= bills.length <= 10000
• bills[i] 不是 5 就是 10 或是 20

## 2、解题思路¶

​ 这道题是简单题，只要保存5，10，20有几张就好了

​ 如果收到的是5圆的，直接放入，数量加一

​ 如果收到10圆的，判断手里有没有至少一张5圆的，有的话，10元加一，5元减一

​ 如果收到20，判断手里能不能找到15元，也就是10+5，5+5+5，找到的话，放入20，减少15

​ 不能找零，返回假

class Solution:
"""
:type bills: List[int]
:rtype: bool
"""
buff = {}
if len(bills) == 0:
return True
if bills[0] != 5:
return False

for i in bills:
if i == 5:
if buff.get(5) is None:
buff[5] = 1
else:
buff[5] += 1
elif i == 10:
if buff.get(5) is not None and buff[5] >= 1:
buff[5] -= 1
if buff.get(10) is None:
buff[10] = 1
else:
buff[10] += 1
else:
return False
else:
if buff.get(10) is not None and buff.get(5) is not  None and buff[10] >= 1 and buff[5] >= 1:
buff[10] -= 1
buff[5] -= 1
if buff.get(20) is None:
buff[20] = 1
else:
buff[20] += 1
elif buff.get(5) is not None and buff[5] >= 3:
buff[5] -= 3
if buff.get(20) is None:
buff[20] = 1
else:
buff[20] += 1
else:
return False
return True