FreeCodeCamp
Always--Learning
选择远远大于努力
展开
-
FreeCodeCamp经典题目(收银机)
题目描述测试案例题目分析由于本题是我使用Chrome浏览器直接对题目进行的翻译,难免造成一些翻译上的错误。所以接下来,我们首先对题目进行一个分析,明确题目想要解决什么样的问题。题目接收的参数是什么?本题给出的函数,总共接收三个参数。参数1:顾客所有产品的总价。参数2:顾客给的钱数。参数3:是一个二维数组,每一个小数组中的第一个元素是面值,第二个元素是收银机中该面额的总值(美元)。解题思路1. 建立一个面值和美元对应的二维数组。const cashMap = [原创 2021-08-02 20:43:45 · 546 阅读 · 0 评论 -
电话号码验证器(FreeCodeCamp)
题目描述解题思路本题我采用的是正则的方法,通过考虑多种情况,因为所有的测试案例都已经给出,只要能够将所有情况考虑全面,通过正则表达式就可以通过测试。本题可能不是最优解,如果读者有其他更优解,欢迎留言评论。解题代码function telephoneCheck(str) { let reg = /^1\s?\(\d{3}\).?\d{3}.?\d{4}|^1\s\d{3}[\(|-]\d{3}[-]\d{4}|^\d{10}$|\d{3}\s\d{3}\s\d{4}|^\(\d{3}\原创 2021-07-20 17:42:32 · 540 阅读 · 0 评论 -
凯撒密码(FreeCodeCamp)
题目描述解题思路首先遍历每一个字符。通过charCodeAt()来判断字符的ASCII码值,如果该值在A-Z之间继续判断-13之后是否还在这个范围,如果还在这个范围直接通过charCodeAt()进行转换字符即可。如果该值不在A-Z之间,直接进行拼接原字符即可。实现代码function rot13(str) { let temp = ''; for (let v of str) { if (v.charCodeAt() < 65 || v.charCo原创 2021-07-15 09:04:21 · 423 阅读 · 0 评论 -
罗马数字转换器(FreeCodeCamp)
题目描述测试实例解题思路构造罗马数字和整数的基本元素对应哈希表将目标整数依次除以哈希表的每一个元素,并向下取整,如果取整后结果大于0,则拼接上述结果个数个罗马数字,然后对哈希表中的对应整数取余赋值给num如何构造这个哈希表是本题的关键难点。解题代码function convertToRoman(num) { const map = new Map([['M',1000],['CM',900],['D',500],['CD',400],['C',100],['XC',90],['原创 2021-07-02 10:54:49 · 2710 阅读 · 2 评论 -
你会求《数字范围内的最小公倍数》吗?
今天我在练习FreeCodeCamp的时候,发现一道很有意思的初级算法题目,特地和大家分享一下。题目描述找到可以被两者以及这些参数之间范围内的所有序列号均分的所提供参数的最小公倍数。该范围将是一个由两个数字组成的数组,不一定按数字顺序排列。例如,如果给定 1 和 3,请找出 1 和 3 的最小公倍数,该倍数也可以被1 和 3之间的所有数字整除。 这里的答案是 6。测试实例解题思路当我刚刚看到这道题目的时候,我在想求最小公倍数这还不简单?但是事情仿佛没那么容易,原因在于题目中让我们求的不.原创 2021-06-23 15:40:01 · 443 阅读 · 0 评论