Python每日一编程小练习(2019.06.01)——柠檬水找零
题目:
在柠檬水摊上,每一杯柠檬水的售价为
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)——柠檬水找零相关推荐
- Leetcode 每日一题——860. 柠檬水找零
860. 柠檬水找零 在柠檬水摊上,每一杯柠檬水的售价为 5 美元. 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯. 每位顾客只买一杯柠檬水,然后向你付 5 美元.10 美元或 ...
- Python每日一编程小练习(2019.06.10)——赛场统分
题目: 在编程竞赛中,有10个评委为参赛的选手打分,分数为0 ~ 100分.选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值. 请编写一个程序实现. 分析: 本题思路为:先对元素进行排 ...
- Leetcode每日一题:860.lemonade-change(柠檬水找零)
思路:初始化手上已有的五元钱和十元钱的数量count5=0,count10=0:然后遇到5元,count5++:遇到十元,判断count5>0?:遇到20元,判断count10>0& ...
- LeetCode 860[Python]. 柠檬水找零 在柠檬水摊上,每一杯柠檬水的售价为 5 美元。 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。
LeetCode 860. 柠檬水找零 在柠檬水摊上,每一杯柠檬水的售价为 5 美元. 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯. 每位顾客只买一杯柠檬水,然后向你付 5 ...
- leedcode每日一题:860. 柠檬水找零
一.题目描述 在柠檬水摊上,每一杯柠檬水的售价为 5 美元. 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯. 每位顾客只买一杯柠檬水,然后向你付 5 美元.10 美元或 20 ...
- LeetCode每日一题--860. 柠檬水找零(贪心)
题目:跳转至 860. 柠檬水找零 在柠檬水摊上,每一杯柠檬水的售价为 5 美元. 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯. 每位顾客只买一杯柠檬水,然后向你付 5 美元 ...
- Python学习笔记编程小哥令狐~持续更新、、、
Python学习笔记~编程小哥令狐 文章目录 Python学习笔记~编程小哥令狐 一.Python运行发生情况 二.变量 2.1变量引入前说明 2.2变量的命名和使用 2.3字符串 2.3.1使用方法 ...
- python 最小硬币数_Python之动态规划(最少硬币数找零)
完整代码: # 动态规划最少硬币数找零 def dpMakeChange(coinValueList, change, minCoins, coinsUsed): for cents in range ...
- python编程比赛初赛 组成最小罗马数字_Python每日一编程小练习(2019.06.13)——罗马数转换为整数...
题目: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 1 ...
最新文章
- python字符编码是什么_python3字符编码是什么?怎么用?
- JSR338(Java Persistence)
- noip考python吗_青少年信奥联赛(NOIP)改名重推实锤!带着“不建议”硬刚到底?...
- 计算机系统结构相关技术,计算机系统结构第1章技术总结.pptx
- 为什么属龙的有二婚命_76年属龙的二婚在什么时候,76属龙女人婚姻命运怎么样...
- CRM Fiori Opportunity应用的新建Opportunity操作的实现
- VS集成Qt开发入门(简易时间显示)
- 平板涂色(信息学奥赛一本通-T1445)
- crontab定时任务不执行的原因
- 【零基础学Java】—Java 日期时间(三十一)
- 【软件测试】测试用例详解
- win10计算机不分区,win10有必要分区吗
- PHP8.0尝鲜系列(一):Windows 10安装PHP8.0
- 片刻之后我们就找到了计算机教室英语翻译,全新版大学英语综合教程2课文原文翻译...
- GIS地图学习笔记二之Android开发
- matlab里面sin函数是角度,matlab-如何用matlab编写sin函数要求定义一 – 手机爱问
- 微信公众号扫码授权登录思路
- 史上最牛二分查找,不服来战
- PLS-00201: ORA-20000:
- 解决谷歌浏览器不能打开Axure原型的问题