freeCodeCamp算法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lftaoyuan/article/details/82144481

/*
Reverse a String

翻转字符串

先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化成字符串。

你的结果必须得是一个字符串

*/

function reverseString(str) {
  // 请把你的代码写在这里
  var tempArr = str.split("");
  tempArr.reverse();

  return tempArr.join("");

}

reverseString("hello");

/*
Factorialize a Number

计算一个整数的阶乘

如果用字母n来代表一个整数,阶乘代表着所有小于或等于n的整数的乘积。

阶乘通常简写成 n!

例如: 5! = 1 * 2 * 3 * 4 * 5 = 120
*/

function factorialize(num) {
  // 请把你的代码写在这里
  if (num === 0) { return 1;}
  for (var i = num-1; i > 0; i--) {
        num *= i;
  }
  return num;
}

factorialize(5);

/*
Check for Palindromes

扫描二维码关注公众号,回复: 2964821 查看本文章

检查回文字符串

如果给定的字符串是回文,返回true,反之,返回false。

如果一个字符串忽略标点符号、大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome(回文)。

注意你需要去掉字符串多余的标点符号和空格,然后把字符串转化成小写来验证此字符串是否为回文。

函数参数的值可以为”racecar”,”RaceCar”和”race CAR”。
*/

function palindrome(str) {
  // 请把你的代码写在这里
  str = str.replace(/[\s&\|\\\*^%$#@\-,._:()]/gi, ""); // 去掉所有符号和空格,这里已经加了无数次了
  var lowerStr = str.toLowerCase(); //全都转为小写
  var tempArr = lowerStr.split("");
  var tempReverseArr =  tempArr.reverse();
  var reverseStr = tempReverseArr.join("");
  return reverseStr == lowerStr;
}



var result = palindrome("A man, a plan, a canal. Panama");

/*
Find the Longest Word in a String

找出最长单词
在句子中找出最长的单词,并返回它的长度。
函数的返回值应该是一个数字。
*/

function findLongestWord(str) {
  // 请把你的代码写在这里

  var arr = str.split(" ");
  var tempArr = [];
  for (var i = 0; i < arr.length; i++) {
    tempArr.push(arr[i].length);
  }
  console.log(tempArr);
  var result = tempArr.sort(function(a, b){
    return b-a;
  });
  console.log(result);
  return result[0];
}

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

/*
Title Case a Sentence

句中单词首字母大写
确保字符串的每个单词首字母都大写,其余部分小写。
像’the’和’of’这样的连接符同理。
*/

function titleCase(str) {
    // 请把你的代码写在这里
    var arr = str.toLowerCase().split(" ");

    for (var i = 0; i < arr.length; i++) {
        var char = arr[i].charAt(0);
        arr[i] = arr[i].replace(char, char.toUpperCase());
    }
    return arr.join(" ");
}

titleCase("I'm a little tea pot");

/*
Return Largest Numbers in Arrays

找出多个数组中的最大数
右边大数组中包含了4个小数组,分别找到每个小数组中的最大值,然后把它们串联起来,形成一个新数组。
*/

function largestOfFour(arr) {
  // 请把你的代码写在这里
  var newArr = [];
  for (var i = 0; i < arr.length; i++) {
    var maxNum = arr[i].sort(function(a,b){
        return b-a;
    });
    newArr.push(maxNum[0]);
  }
  return newArr;
}

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

猜你喜欢

转载自blog.csdn.net/lftaoyuan/article/details/82144481