题目:

在柠檬水摊上,每一杯柠檬水的售价为 5 美元。

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

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

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

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

示例 1:

输入:[5,5,5,10,20]
输出:true
解释:
前 3 位顾客那里,我们按顺序收取 3 张 5 美元的钞票。
第 4 位顾客那里,我们收取一张 10 美元的钞票,并返还 5 美元。
第 5 位顾客那里,我们找还一张 10 美元的钞票和一张 5 美元的钞票。
由于所有客户都得到了正确的找零,所以我们输出 true。

分析:

1、需清楚找零钱不仅要考虑面值够不够,还要考虑钞票的面额,即2张10美元钞票不能给20美元钞票找零。

因此,我们需要针对收到的钱来进行分情况处理判断:

①收到5美元钞票,则直接收钱即可,不用做判断;

②收到10美元钞票,则需判断是否有5美元钞票进行找零;

③收到20美元钞票,则需判断是否有  “至少一张5美元钞票以及一张10美元钞票”  或者  “3张5美元钞票”  进行找零;

2、需清楚continue、break的用法

用法参考了:https://baijiahao.baidu.com/s?id=1618290540843657394&wfr=spider&for=pc

def lemon(a):i = 0b5 = 0                                  #存储5元零钱b10 = 0                                 #存储10元零钱b20 = 0                                 #存储20元零钱while i < len(a):if a[i] == 5:                       #收到5元,不用找零钱,收钱即可b5 = b5 + 5 i = i + 1continue                        #继续下一次循环if a[i] == 10 and b5 > (a[i]-5):    #收到10元,需确保有5元零钱b10 = b10 + 10b5 = b5 - 5i = i + 1continueelif a[i] == 20 and b5 >= 5 and b10 >= 10: #收到20元,需确保有5元、10元零钱b10 = b10 - 10b5 = b5 - 5b20 = b20 + 20i = i + 1continueelif a[i] == 20 and b5 >= 15:              #收到20元,需确保有3张5美元钞票零钱b5 = b5 - 15b20 = b20 + 20i = i + 1continueelse :return('false')breakreturn('ture')

运行结果:

注:本题目来源于:https://mp.weixin.qq.com/s/jaeSczaeMXfk9QlC6LfqFA

如有侵权,请联系删除。

本题的思路以及代码,由笔者自己思考并编写代码实现,如有错误,欢迎之处。

Python每日一编程小练习(2019.06.01)——柠檬水找零相关推荐

  1. Leetcode 每日一题——860. 柠檬水找零

    860. 柠檬水找零 在柠檬水摊上,每一杯柠檬水的售价为 5 美元. 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯. 每位顾客只买一杯柠檬水,然后向你付 5 美元.10 美元或 ...

  2. Python每日一编程小练习(2019.06.10)——赛场统分

    题目: 在编程竞赛中,有10个评委为参赛的选手打分,分数为0 ~ 100分.选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值. 请编写一个程序实现. 分析: 本题思路为:先对元素进行排 ...

  3. Leetcode每日一题:860.lemonade-change(柠檬水找零)

    思路:初始化手上已有的五元钱和十元钱的数量count5=0,count10=0:然后遇到5元,count5++:遇到十元,判断count5>0?:遇到20元,判断count10>0& ...

  4. LeetCode 860[Python]. 柠檬水找零 在柠檬水摊上,每一杯柠檬水的售价为 5 美元。 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。

    LeetCode 860. 柠檬水找零 在柠檬水摊上,每一杯柠檬水的售价为 5 美元. 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯. 每位顾客只买一杯柠檬水,然后向你付 5 ...

  5. leedcode每日一题:860. 柠檬水找零

    一.题目描述 在柠檬水摊上,每一杯柠檬水的售价为 5 美元. 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯. 每位顾客只买一杯柠檬水,然后向你付 5 美元.10 美元或 20 ...

  6. LeetCode每日一题--860. 柠檬水找零(贪心)

    题目:跳转至 860. 柠檬水找零 在柠檬水摊上,每一杯柠檬水的售价为 5 美元. 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯. 每位顾客只买一杯柠檬水,然后向你付 5 美元 ...

  7. Python学习笔记编程小哥令狐~持续更新、、、

    Python学习笔记~编程小哥令狐 文章目录 Python学习笔记~编程小哥令狐 一.Python运行发生情况 二.变量 2.1变量引入前说明 2.2变量的命名和使用 2.3字符串 2.3.1使用方法 ...

  8. python 最小硬币数_Python之动态规划(最少硬币数找零)

    完整代码: # 动态规划最少硬币数找零 def dpMakeChange(coinValueList, change, minCoins, coinsUsed): for cents in range ...

  9. python编程比赛初赛 组成最小罗马数字_Python每日一编程小练习(2019.06.13)——罗马数转换为整数...

    题目: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符          数值 I             1 V             5 X             1 ...

最新文章

  1. python字符编码是什么_python3字符编码是什么?怎么用?
  2. JSR338(Java Persistence)
  3. noip考python吗_青少年信奥联赛(NOIP)改名重推实锤!带着“不建议”硬刚到底?...
  4. 计算机系统结构相关技术,计算机系统结构第1章技术总结.pptx
  5. 为什么属龙的有二婚命_76年属龙的二婚在什么时候,76属龙女人婚姻命运怎么样...
  6. CRM Fiori Opportunity应用的新建Opportunity操作的实现
  7. VS集成Qt开发入门(简易时间显示)
  8. 平板涂色(信息学奥赛一本通-T1445)
  9. crontab定时任务不执行的原因
  10. 【零基础学Java】—Java 日期时间(三十一)
  11. 【软件测试】测试用例详解
  12. win10计算机不分区,win10有必要分区吗
  13. PHP8.0尝鲜系列(一):Windows 10安装PHP8.0
  14. 片刻之后我们就找到了计算机教室英语翻译,全新版大学英语综合教程2课文原文翻译...
  15. GIS地图学习笔记二之Android开发
  16. matlab里面sin函数是角度,matlab-如何用matlab编写sin函数要求定义一 – 手机爱问
  17. 微信公众号扫码授权登录思路
  18. 史上最牛二分查找,不服来战
  19. PLS-00201: ORA-20000:
  20. 解决谷歌浏览器不能打开Axure原型的问题

热门文章

  1. 洛谷 P3373 线段树模板题
  2. 数学规划模型(三):整数规划模型
  3. 知人者智,自知者明——战胜自己才最强大(拥有一颗强大的内心,能量爆棚的内在灵魂)...
  4. 蚂蚁金服杨军:蚂蚁数据分析平台的演进及数据分析方法的应用
  5. 【总结】1361- package.json 与 package-lock.json 的关系
  6. 500万条微博数据来源分析
  7. Wps文件如何转成word文档
  8. 时序分析——Latch timing
  9. MySQL 支持表情字符
  10. 迅雷9边下边播绑定第三方播放器