codewar-6kyu-Vasya
来源:互联网 发布:直通车关键词价格优化 编辑:程序博客网 时间:2024/05/18 01:50
最近在做codewar 里的练习,由于自己是JavaScript刚刚起步,通过codewar里面的练习,可以加深自己对一些函数的理解和使用。今天做了一题感觉比较有意思。
原题是这样的:
刚开始做的时候,是我想得太过于复杂了,想着怎么去持有判断50块的人或者100块的hau人前面有多少个50块的和100块。结果这样去想的话,完了,设计了多层嵌套循环都不好解决,这样的算实在是没有意义。在我万念俱灰,终于看答案后,我由衷地觉得自己的智商不够,原来是我简单的问题复杂化了。
实现过程其实很简单,判断每个付款金额,如果金额是25元,那就开心了,不用找钱(25元+1);如果顾客给了50元,哎要找25元(25元 -1),同时(50元+1)。如果顾客给了100元,oh god!要找75元。如果有50元,先给50,再给25。(50元 -1 and 25元 -1)。没有50元肿么办!那就得找3张25元(25元 -3)。最后 如果25元没了,那么就下班了。这里给出一些点赞较多的代码:
方法1:
function Clerk(name) { this.name = name; this.money = { 25 : 0, 50 : 0, 100: 0 }; this.sell = function(element, index, array) { this.money[element]++; switch (element) { case 25: return true; case 50: this.money[25]--; break; case 100: this.money[50] ? this.money[50]-- : this.money[25] -= 2; this.money[25]--; break; } return this.money[25] >= 0; };}function tickets(peopleInLine){ var vasya = new Clerk("Vasya"); return peopleInLine.every(vasya.sell.bind(vasya)) ? "YES" : "NO";}
方法2:
function tickets(peopleInLine) { var bills = [0, 0, 0] for (var i = 0; i < peopleInLine.length; i++) { switch (peopleInLine[i]) { case 25: bills[0]++ break case 50: bills[0]-- bills[1]++ break case 100: bills[1] ? bills[1]-- : bills[0] -= 2 bills[0]-- break } if (bills[0] < 0) { return 'NO' } } return 'YES'
阅读全文
0 0
- codewar-6kyu-Vasya
- codewar
- Build Tower -- 6 kyu
- Consecutive strings -- 6 kyu
- Reverse or rotate? -- 6 kyu
- codewar (1)
- codewars-6kyu-give a diamond(打印菱形)
- Return location -- 8kyu
- Directions Reduction -- 5 kyu
- CodeWar刷题代码收藏(一)
- 【codewarns-8kyu】- Arguments to Binary addition
- Is this a triangle? -- 7kyu
- Parts of a list -- 7 kyu
- Moves in squared strings (I) -- 7Kyu
- codewar c++ 8分题(2))
- 从零开始codewar——C语言(第一战)
- 从零开始codewar——C语言(第二战)
- Java 算法练习 ——— CodeWar Day 1
- Java String.split()用法小结
- sublime的各种问题
- 114. Flatten Binary Tree to Linked List
- eclipse建立webservice服务端与客户端
- LeetCode.153
- codewar-6kyu-Vasya
- 2017年执业药师考试中药炮制学常见考点小结
- 解决session超时的时候会出现双层登录窗口的问题
- 【跟踪】基于mean shift的目标跟踪算法
- Python2.7升级到3.0 HTMLTestrunner报错解决方法
- MFC获取框架,视图,文档指针
- 文章标题
- 如何去掉linux配置文件的注释行和空行
- 非spring 工程使用 spring cloud config配置中心