FreeCodeCamp 中级算法题 - 基本布尔类型检查

基本布尔类型检查 (Boo Hoo)

题目链接

问题解释

  • 这个 function 接收一个参数 bool,为待判断的值。返回值为 Boolean,若传入的 bool 是布尔类型,就返回 true,否则返回 false
  • 比如,传入 true 或者 false,由于他们都是布尔类型,所以应该返回 true。如果传入 1,由于这是数字,所以返回 false

FreeCodeCamp 中级算法题 - 寻找缺失的字母

寻找缺失的字母 (Missing Letters)

题目链接

问题解释

  • 这个 function 接收一个字符串参数 str。返回值也为字符,即缺失的字母。如果没有缺失字母,则返回 undefined
  • 举个例子,如果传入参数是 "abce",那么返回值应为 "d"。如果传入参数是 "abc",那么返回值为 undefined

FreeCodeCamp 中级算法题 - DNA 配对

DNA 配对 (DNA Pairing)

题目链接

问题解释

  • 这个 function 接收一个字符串参数 str,为需要转换的字符串。返回值为转换之后的二维数组
  • 例如,第一个参数是 "GCG",那么返回值就是 [["G", "C"], ["C", "G"], ["G", "C"]]
  • 匹配关系也不复杂,"G""C" 互相匹配,"A""T" 互相匹配

FreeCodeCamp 中级算法题 - 儿童黑话

儿童黑话 (Pig Latin)

题目链接

问题解释

  • 这个 function 接收一个字符串参数 str,即为原单词。返回值是翻译后的单词,也为字符串
  • 比如接收的是 "california",那么输出就是 "aliforniacay"。如果接收的是 "eight",那么输出是 "eightway"
  • 翻译规则并不复杂,分为两种情况:
    • 如果单词以元音 (a, e, i, o, u) 开头,那么就直接在结尾加上 "way"
    • 如果单词不以元音开头,那么就把元音前的辅音移至结尾,并加上 "ay"

FreeCodeCamp 中级算法题 - 句中查找替换

句中查找替换 (Search and Replace)

题目链接

问题解释

  • 这个 function 接收三个字符串参数。第一个参数 str 为原字符串,第二个参数 before 为需要替换的部分,第三个参数 after 为替换后的内容。返回值为按规则替换后的字符串
  • 举个例子,如果第一个参数是 "His name is Tom",第二个参数是 "Tom",第三个参数是 "john",那么返回值应为 "His name is John"
  • 需要注意题目的另一条要求,我们需要保持被替换部分的大小写格式。可能这就是本题出现在中级算法的原因吧

FreeCodeCamp 中级算法题 - 找出对象包含的特定键值对

找出对象包含的特定键值对 (Where art thou)

题目链接

问题解释

  • 这个 function 接收两个参数。第一个参数 collection 为对象数组 (JSON),第二个参数 source 为对象 (Object)。返回值为过滤后的第一个参数
  • 例如,第一个参数是 [{"a": 1}, {"b": 2}, {"a": 1, "b": 2}],第二个参数是 {"a": 1}。那么返回值就是 [{"a": 1}, {"a": 1, "b": 2}]
  • 需要注意的是,如果第二个参数包含多个键值对,那么需要在第一个参数中找出包含第二个参数每一对键值对的数据
  • 这么说可能有一点绕,简单来说,匹配的规则就是完全包含。可以多,但不能少。另外,光包含属性是不够的,还要满足对应的值相等

FreeCodeCamp 中级算法题 - 比较两数组差异

比较两数组差异 (Diff Two Arrays)

题目链接

问题解释

  • 这个 function 接收两个数组参数,分别为 arr1arr2。返回值也为一个数组,元素是两数组的差异部分
  • 比如接收的是 [1, 2, 3, 5][1, 2, 3, 4, 5],那么输出就是 [4]
  • 需要注意的是,返回值不一定完全来自第二个数组。也就是说,差异部分也有可能包含在第一个数组中。举个例子,如果接收的参数是 [1, 2, 3][1, 2, 4],那么返回值应该为 [3, 4]

FreeCodeCamp 中级算法题 - 给定范围内的数字总和

给定范围内的数字总和 (Sum All Numbers in a Range)

题目链接

问题解释

  • 这个 function 接收一个数组参数 arr,其中包含两个数字。返回值为这两个数字范围内所有数字的总和
  • 比如接收的是 [1, 4],那么输出就是 10
  • 需要注意的是,如果接收的是 [4, 1],那么输出也应为 10

FreeCodeCamp 初级算法题 - 凯撒密码

凯撒密码 (Caesars Cipher)

题目链接

问题解释

  • 这个 function 接收一个字符串参数 str,即为需要解密的字符串。返回值为解密后的字符串
  • 比如接收的是 "A",那么输出就是 "N",如果接收的是 "SERR PBQR PNZC",那么输出就是 "FREE CODE CAMP"
  • 值得注意的一点是,解密的过程,其实可以通过对字符串再进行一次 ROT13 加密实现。ROT13 的加密原理是偏移 13 位,保持大小写不变。因此,再偏移一次就能得到原字符串
,