点击登录
    便宜出个双拼域名,ruocuo.com,有意的联系站长。

FreeCodeCamp算法题答案

FreeCodeCamp 学习热 1866次浏览 36个评论 扫描二维码

Reverse a String 

翻转字符串

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

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

function reverseString(str) {
var a1=str.split(“”);
var a2=a1.reverse();
var a3=a2.join(“”);
return a3;
}

reverseString(“hello”);

Factorialize a Number 

计算一个整数的阶乘

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

阶乘通常简写成 n!

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

function factorialize(num) {
var i,t=1;
for(i=2;i<=num;i++)
t*=i;
return t;

}

factorialize(4);

Check for Palindromes 

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

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

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

函数参数的值可以为"racecar""RaceCar""race CAR"

function palindrome(str) {
// Good luck!
var str1=str.replace(/\W/g,””).replace(/\_/g,””).toLowerCase();
var str2= str.replace(/\W/g,””).replace(/\_/g,””).toLowerCase().split(“”).reverse().join(“”);
return str1==str2;
}
palindrome(“0_0 (: /-\ FreeCodeCamp算法题答案 0-0”);

Find the Longest Word in a String 

找到提供的句子中最长的单词,并计算它的长度。

函数的返回值应该是一个数字。

function findLongestWord(str) {
str=str.split(” “);
var max=0;
for(var i=0;i<str.length;i++){
if(max<str[i].length){
max=str[i].length;
}
}
return max;
}

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

Title Case a Sentence 

确保字符串的每个单词首字母都大写,其余部分小写。

像’the’和’of’这样的连接符同理。

function titleCase(str) {
return str.toLowerCase().replace(/( |^)[a-z]/g, (L) => L.toUpperCase());
}

titleCase(“I’m a little tea pot”);

Return Largest Numbers in Arrays 

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

提示:你可以用for循环来迭代数组,并通过arr[i]的方式来访问数组的每个元素。

function largestOfFour(arr) {
// You can do this!
var max1=0;
var max2=0;
var max3=0;
var max4=0;
for(i=0;i<arr[0].length;i++){
if(max1<arr[0][i]){
max1=arr[0][i];
}
}
for(i=0;i<arr[1].length;i++){
if(max2<arr[1][i]){
max2=arr[1][i];
}
}
for(i=0;i<arr[2].length;i++){
if(max3<arr[2][i]){
max3=arr[2][i];
}
}
for(i=0;i<arr[3].length;i++){
if(max4<arr[3][i]){
max4=arr[3][i];
}
}
return [max1,max2,max3,max4];
}

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

Confirm the Ending 

检查一个字符串(str)是否以指定的字符串(target)结尾。

如果是,返回true;如果不是,返回false。

function confirmEnding(str, target) {
// “Never give up and good luck will find you.”
// — Falcor
var length_str=str.length;
var length_target=target.length;

return str.substr(length_str-length_target,length_str-1)==target;
}

confirmEnding(“Bastian”, “n”);

Repeat a string repeat a string

重要的事情说3遍!

重复一个指定的字符串 num次,如果num是一个负数则返回一个空字符串。

function repeat(str, num) {
// repeat after me
var a=””;
for(var i=0;i<num;i++){
a+=str;
}
if(num<0){
return “”;
}
return a;
}

repeat(“abc”, 3);

Truncate a string 

用瑞兹来截断对面的退路!

截断一个字符串!

如果字符串的长度比指定的参数num长,则把多余的部分用...来表示。

切记,插入到字符串尾部的三个点号也会计入字符串的长度。

但是,如果指定的参数num小于或等于3,则添加的三个点号不会计入字符串的长度。

function truncate(str, num) {
// Clear out that junk in your trunk
if(str.length>num){
if(num<3){
str=str.slice(0,num);
return str+”…”;
}
str=str.slice(0,num-3);
return str+”…”;

}

return str;
}

truncate(“A-tisket a-tasket A green and yellow basket”, 11);

Chunky Monkey

猴子吃香蕉可是掰成好几段来吃哦!

把一个数组arr按照指定的数组大小size分割成若干个数组块。

例如:chunk([1,2,3,4],2)=[[1,2],[3,4]];

chunk([1,2,3,4,5],2)=[[1,2],[3,4],[5]];

function chunk(arr, size) {
// Break it up.
var temp = [];
for(var i = 0; i < arr.length; i+=size){
temp.push(arr.slice(i,i+size));
}
return temp;
}

chunk([“a”, “b”, “c”, “d”], 2);

Slasher Flick

打不死的小强!

返回一个数组被截断n个元素后还剩余的元素,截断从索引0开始。

function slasher(arr, howMany) {
// it doesn’t always pay to be first

return arr.slice(howMany,arr.length);
}

slasher([1, 2, 3], 2);

Mutations 

蛤蟆可以吃队友,也可以吃对手。

如果数组第一个字符串元素包含了第二个字符串元素的所有字符,函数返回true。

举例,["hello", "Hello"]应该返回true,因为在忽略大小写的情况下,第二个字符串的所有字符都可以在第一个字符串找到。

["hello", "hey"]应该返回false,因为字符串”hello”并不包含字符”y”。

["Alien", "line"]应该返回true,因为”line”中所有字符都可以在”Alien”找到。

function mutation(arr) {
var a=arr[0].toLowerCase( );
var b=arr[1].toLowerCase( );
for(var i=0;i<b.length;i++){
var c = a.indexOf(b[i]);
if(c==-1){
return false;
}
}
return true;
}

mutation([“hello”, “hey”]);

Falsy Bouncer

真假美猴王!

删除数组中的所有假值。

在JavaScript中,假值有falsenull0""undefinedNaN

function isjia(b) {

var x = Boolean(b)
return x;
}
function bouncer(arr) {
// Don’t show a false ID to this bouncer.
var filtered = arr.filter(isjia);
return filtered;
}

bouncer([7, “ate”, “”, false, 9]);

Seek and Destroy

金克斯的迫击炮!

实现一个摧毁(destroyer)函数,第一个参数是待摧毁的数组,其余的参数是待摧毁的值。

function destroyer(arr) {
// Remove all the values
var args = [];
for(var i = 1; i < arguments.length; i++){
args.push(arguments[i]);
}
var temp = arr.filter(function(item,index,array){
return args.indexOf(item) < 0;
});
return temp;
}

destroyer([1, 2, 3, 1, 2, 3], 2, 3);

Where do I belong 

我身在何处?

先给数组排序,然后找到指定的值在数组的位置,最后返回位置对应的索引。

举例:where([1,2,3,4], 1.5) 应该返回 1。因为1.5插入到数组[1,2,3,4]后变成[1,1.5,2,3,4],而1.5对应的索引值就是1

同理,where([20,3,5], 19) 应该返回 2。因为数组会先排序为 [3,5,20]19插入到数组[3,5,20]后变成[3,5,19,20],而19对应的索引值就是2

function where(arr, num) {
// Find my place in this sorted array.
arr.unshift(num);
arr.sort(function(a, b) {
return a – b;
});

for(var i=0;i<arr.length;i++){
if(arr[i]==num){
return i;
}
}
}

where([2, 5, 10], 15);

Caesars Cipher 

让上帝的归上帝,凯撒的归凯撒。

下面我们来介绍风靡全球的凯撒密码Caesar cipher,又叫移位密码。

移位密码也就是密码中的字母会按照指定的数量来做移位。

一个常见的案例就是ROT13密码,字母会移位13个位置。由’A’ ↔ ‘N’, ‘B’ ↔ ‘O’,以此类推。

写一个ROT13函数,实现输入加密字符串,输出解密字符串。

所有的字母都是大写,不要转化任何非字母形式的字符(例如:空格,标点符号),遇到这些特殊字符,跳过它们。

function rot13(str) { // LBH QVQ VG!
var arr = str.toUpperCase().split(” “);
var str1 = [];
for (var i = 0; i < arr.length; i++) {
var arr1 = arr[i].split(“”);
for (var j = 0; j < arr1.length; j++) {
var num = arr1[j].charCodeAt();
if (num >= 65 && num <= 90) {
arr1[j] = num + 13 > 90 ? String.fromCharCode(64 + (num + 13 – 90)):String.fromCharCode(num + 13); //64 + (num + 13 – 90) 要明白为什么是64 ,
}

}
str1.push(arr1.join(“”));
}
return str1.join(” “);
}

// Change the inputs below to test
rot13(“SERR PBQR PNZC”);


学习热 , 版权所有丨如未注明 , 均为原创丨转载请注明FreeCodeCamp算法题答案
喜欢 (0)
支付宝[[email protected]]
分享 (0)
关于作者:
90后,宁飘
  1. ┺┺┺┺美腿秀┺┺┺┺┺┺┺┺性感丝袜翘臀┺┺┺┺┺┺┺┺北京丝袜┺┺┺┺┺┺┺┺丝袜内衣┺┺┺┺meitui1.com

  2. ヲヲヲヲヲヲヲヲヲ天鹅绒丝袜ヲヲヲヲヲヲヲヲヲwww.518mei.com

  3. ꟗ奢侈品原单包 Hood By Air (HBA)YOBUSI(休步仕)方舟Louis Vuitton(路易威登/LV)Burberry(巴宝莉)shechipin.cf