找零问题

134 阅读1分钟

代码

#coding:utf-8
'''
题目描述:柠檬水找零,每一杯柠檬水五元,顾客排队购买,一次购买一杯,支付的金额有5,10,20
要求必须给每位顾客正确找零
一开始你的手头没有零钱
如果可以正确找零返回true 否则返回false
'''
def func(lis):
    five = 0
    ten = 0
    for i in lis:
        if i == 5:
            five += 1
        elif i == 10:
            if five > 0:
                five -= 1
                ten += 1
            else:
                return False
        else:
            if ten > 0 and five > 0:
                ten -= 1
                five -= 1
            elif five >= 3:
                five -= 3
            else:
                return False
    return True
lis = [20,10,5,5,5,20]
print(func(lis))