题目:

在柠檬水摊上,每一杯柠檬水的售价为 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. iPhone 隐私新规下的“大地震”:四大平台损失近百亿美元,“连用户是男是女都分不清……”
  2. 面试必备的 23 个JVM 面试真题!
  3. Centos6.5搭建java开发环境
  4. 擒贼先擒王,简单谈一下JavaScript作用域链(Scope Chain)
  5. Android之View和SurfaceView
  6. excel if in函数_EXCEL技巧之if函数在统计中的应用简介
  7. CososJS学习笔记(1) 环境配置(填坑版,让你少走弯路!)
  8. WebSphere应用程序服务器Web容器设置
  9. c3p0 服务启动获取连接超时_JDBC数据库连接池
  10. SQLServer引擎优化顾问
  11. python场景应用方向_python的应用场景及学习方向
  12. codeforces-148D-Bag of mice-概率DP
  13. python内置对象是什么_Python的内置对象类型——元组、文件,python
  14. oracle19c配置scott创建,oracle 19c创建sample schema-HR,OE,SH等等
  15. Angular 1 实现多标签页效果
  16. 【转自心声】华为眼中管理者的18种惰怠行为
  17. Idea 常用设置和快捷键
  18. 重装系统后服务器不提示用户密码,明明没有设置密码,重装系统后开机要求输入帐号密码咋办?...
  19. IsEmpty 函数
  20. maven依赖的添加

热门文章

  1. 块级元素、行内元素、行内块级元素的特点
  2. 蚂蚁金服缘何自研Service Mesh?
  3. Google登录授权详细过程
  4. 为什么amd显卡便宜却买的人少_为什么不推荐人选择AMD?
  5. JavaWeb项目监听数据表变化并通知前台(数据来源于自身)
  6. 这台计算机没有连接到网络怎么办,通过路由器连接电脑连不上网怎么办_台式连接路由器没有网解决方法-系统城...
  7. win10网络共享需要凭据的解决办法
  8. SystemUi通知栏
  9. Android通知栏字体大小,Android通知栏介绍与适配总结(上篇)
  10. 稳定的围棋服务器,中国古典围棋服务器对奕说明