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]]);