当年练手FreeCodeCamp中的js基础算法编码题1~6 [源码]

一、Reverse a String 字符串倒序输出

思路
1、打散成为单字符数组
2、把数组反序
3、把反序后的数组合拼成为结果字符串

代码如下:

function reverseString(str) {
  
  return str.split('').reverse().join('');
}

reverseString("hello");

二、Factorialize a Number 求一个整数的阶乘

思路
比较简单,就一个循环乘上去

代码如下:

function factorialize(num) {
  var r = 1;
  for(var i=1;i<=num;i++){
    r = r * i;
  }
  return r;
}

factorialize(5);

三、Check for Palindromes 回文检查

思路
1、先把特殊字符去掉
2、把字符串反序
3、比较顺序与序串是否相等

代码如下:

function palindrome(str) {
  var pattern = new RegExp("[%--_`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——| {}【】‘’\";:”“'。,、?]");        
  var rs = '',
      sr = '';
  for (var i = 0; i < str.length; i++) {
      rs = rs + str.substr(i, 1).replace(pattern, '');
  }
  rs = rs.toLowerCase();
  sr = rs.split('').reverse().join('');
  // Good luck!
  if(rs == sr)
  {
    return true;
  } else{
    return false;
  }
}

palindrome("eye");

四、Find the Longest Word in a String 查看英文句子中长度最长单词

思路
1、把句子中的所有单词抽出来
2、逐一进行比较取出最大值

代码如下:

function findLongestWord(str) {
  var arr = str.split(' '),
      len = 0;
  for(var i=0;i<arr.length;i++) { var tLen = arr[i].length; if(tLen > len) {
      len = tLen;
    }
  }
  return len;
}

findLongestWord("The quick brown fox jumped over the lazy dog");

五、Title Case a Sentence 把英文句子中所有的单词的首字母大写

思路
1、把句子全部小写
2、把句子中的所有单词抽出来组成数组
3、把数组所有单词首字母改成大写
4、合并数组成为新的字符串

代码如下:

function titleCase(str) {
  str = str.toLowerCase();
  var arr = str.split(' ');
  for(var i=0;i<arr.length;i++){
    var tem = arr[i];
    arr[i] = tem.substring(0,1).toUpperCase() + tem.substring(1);   
  }
  return arr.join(' ');
}

六、Return Largest Numbers in Arrays 求所有子数组的最大元素

思路
1、用空间换时间概念求出所有子数组中的最大值

代码如下:

function largestOfFour(arr) {
  var rArr = [];
  // You can do this!
  for(var i=0;i<arr.length;i++){
    var tArr = [];
    for(var j=0;j<arr[i].length;j++){
      tArr[arr[i][j]] = 1;
    }
    rArr[i] = tArr.length - 1;
  }
  return rArr;
}

largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);

作者: 博主

Talk is cheap, show me the code!

发表评论

邮箱地址不会被公开。

Captcha Code