欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

freeCodeCamp算法解析

程序员文章站 2022-06-04 23:04:52
freecodecamp算法 /* reverse a string 翻转字符串 先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化成字符串。 你的结果必须得是一个字符...

freecodecamp算法

/*
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

检查回文字符串

如果给定的字符串是回文,返回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]]);