名师广场

登录
工作室首页 > 话题列表 > 话题详情

只看楼主 #每日一题#-基础-090找零

  • 楼主

    王嘉焕

    话题:31

    精华:0

    积分:98

    问题描述:

    有一家甜筒店只卖一种甜筒,每一个甜筒的售价为5元。

    顾客排队购买你的产品,(按账单支付的顺序)一次购买一个。

    每位顾客只买一个甜筒,然后向你付5元、10元或20元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付5元。


    注意,一开始你手头没有任何零钱。

    如果你能给每位顾客正确找零,返回true ,否则返回false 。


    示例 1:

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

    输出:true

    解释:

    前 3 位顾客那里,我们按顺序收取 3 张 5 元。

    第 4 位顾客那里,我们收取一张 10 元,并返还 5 元。

    第 5 位顾客那里,我们找还一张 10 元和一张 5 元。

    由于所有客户都得到了正确的找零,所以我们输出 true。

    示例 2:

    输入:[5,5,10]

    输出:true

    示例 3:

    输入:[10,10]

    输出:false

    示例 4:

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

    输出:false




    阅读:1037 回复:3 2022-09-07 11:17:08

  • 2楼

    顾杭林

    话题:38

    精华:0

    积分:194

    image.png

    2022-09-07 16:08:00

  • 3楼

    王泽宇

    话题:25

    精华:0

    积分:107

    image.png

    运行结果:

    image.png

    2022-09-08 08:21:22

  • 4楼

    李瑶

    话题:15

    精华:0

    积分:52

    def isMoneyOK(money):

        if money[0]!=5:

            return False

        else:

            money1 = money[1:]

            five_money=1

            ten_money=0

            for i in money1:

                if i == 5:     # 有支付 5元的

                    five_money += 1

                elif i == 10:  # 有支付10元的

                    five_money -= 1

                    ten_money += 1

                else:          # 有支付20元的

                    if ten_money >= 1:

                        ten_money -= 1

                        five_money -= 1

                    else:

                        five_money -= 3

                    if five_money < 0 or ten_money < 0: #看看是否是把5元的和10元的给减没了

                        return False

            return True



    if __name__=='__main__':

        print(isMoneyOK([5,5,10,10,20]))

        print(isMoneyOK([5,5,10]))

        


    2022-09-10 10:30:40

说:

还能输入140发送

关闭

扫码登录更安全

空间登录

手机扫码,安全登录

二维码已失效 请点击刷新
请打开人人通空间APP扫一扫登录

手机扫码,安全登录

扫描成功!

请在手机上确认登录

取消二维码登录

二维码

名师工作室移动端

  • 扫一扫,直接在手机上打开
  • 随时随地使用工作室
分享
回到顶部