FreeCodeCamp基础算法题答案解析Word格式文档下载.docx

上传人:b****3 文档编号:14747010 上传时间:2022-10-24 格式:DOCX 页数:7 大小:16.97KB
下载 相关 举报
FreeCodeCamp基础算法题答案解析Word格式文档下载.docx_第1页
第1页 / 共7页
FreeCodeCamp基础算法题答案解析Word格式文档下载.docx_第2页
第2页 / 共7页
FreeCodeCamp基础算法题答案解析Word格式文档下载.docx_第3页
第3页 / 共7页
FreeCodeCamp基础算法题答案解析Word格式文档下载.docx_第4页
第4页 / 共7页
FreeCodeCamp基础算法题答案解析Word格式文档下载.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

FreeCodeCamp基础算法题答案解析Word格式文档下载.docx

《FreeCodeCamp基础算法题答案解析Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《FreeCodeCamp基础算法题答案解析Word格式文档下载.docx(7页珍藏版)》请在冰豆网上搜索。

FreeCodeCamp基础算法题答案解析Word格式文档下载.docx

return-1;

}elseif(num===0){

return1;

}

else{

returnnum*factorialize(num-1);

factorialize(5);

//120

 

CheckforPalindromes

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

如果一個字符串忽略標點符號、大小寫和空格,正著讀和反著讀一模一樣,那麼這個字符串就是palindrome(回文)。

functionpalindrome(str){

returnstr.replace(/[\W_]/g,'

).toLowerCase()===str.replace(/[\W_]/g,'

).toLowerCase().split('

FindtheLongestWordinaString

找到提供的句子中最長的單詞,並計算它的長度。

函數的返回值應該是一個數字。

//法一

/*functionfindLongestWord(str){

myStr=str.split('

'

varlongest=0;

for(vari=0;

ilongest){

longest=myStr[i].length;

returnlongest;

*/

//法二

functionfindLongestWord(str){

vararrnum=[];

for(i=0;

i<

myStr.length;

i++){

arrnum.push(myStr[i].length);

returnMath.max.apply(null,arrnum);

findLongestWord("

Thequickbrownfoxjumpedoverthelazydog"

TitleCaseaSentence

functiontitleCase(str){

vararr=str.toLowerCase().split('

for(i=0;

arr.length;

varchar=arr[i].charAt(0);

arr[i]=arr[i].replace(char,char.toUpperCase());

returnarr.join('

vararr=str.toLowerCase().split('

for(variinarr){

arr[i]=arr[i].replace(arr[i].charAt(0),arr[i].charAt(0).toUpperCase());

titleCase("

I'

malittleteapot"

ReturnLargestNumbersinArrays

右邊大數組中包含了4個小數組,分別找到每個小數組中的最大值,然後把它們串聯起來,形成一個新數組。

functionlargestOfFour(arr){

varnewArr=[];

for(vari=0;

i<

arr.length;

newArr[i]=Math.max.apply(null,arr[i]);

returnnewArr;

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

ConfirmtheEnding

檢查一個字符串(str)是否以指定的字符串(target)結尾。

functionconfirmEnding(str,target){

returnstr.substr(-target.length)===target;

confirmEnding("

Bastian"

"

n"

Repeatastringrepeatastring

重複一個指定的字符串num次,如果num是一個負數則返回一個空字符串。

functionrepeat(str,num){

returnnum>

0?

str.repeat(num):

"

"

;

repeat("

abc"

3);

Truncateastring

截斷一個字符串!

如果字符串的長度比指定的參數num長,則把多餘的部分用...來表示。

切記,插入到字符串尾部的三個點號也會計入字符串的長度。

但是,如果指定的參數num小於或等於3,則添加的三個點號不會計入字符串的長度。

functiontruncate(str,num){

if(str.length3){

num-=3;

vartruncted=str.substr(0,num);

returntruncted+"

..."

truncate("

A-tisketa-tasketAgreenandyellowbasket"

11);

ChunkyMonkey

把一個數組arr按照指定的數組大小size分割成若干個數組塊。

<

spantype="

button"

data-toggle="

tooltip"

data-placement="

top"

data-clipboard-text="

functionchunk(arr,size){

varmyArr=[];

i

i+=size){

myArr.push(arr.slice(i,size+i));

returnmyArr;

chunk(["

a"

b"

c"

d"

],2);

SlasherFlick

返回一個數組被截斷n個元素後還剩餘的元素,截斷從索引0開始。

functionslasher(arr,howMany){

returnarr.slice(howMany);

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

Mutations

如果數組第一個字符串元素包含了第二個字符串元素的所有字符,函數返回true。

functionmutation(arr){

vararr1=arr[0].toLowerCase();

vararr2=arr[1].toLowerCase();

arr2.length;

if(arr1.indexOf(arr2[i])<

0)returnfalse;

returntrue;

mutation(["

hey"

]);

FalsyBouncer

刪除數組中的所有假值。

在JavaScript中,假值有false、null、0、"

、undefined和NaN。

functionbouncer(arr){

returnarr.filter(Boolean);

bouncer([7,"

ate"

false,9]);

等同於:

returnarr.filter(function(item,index,array){

returnBoolean(item);

});

SeekandDestroy

實現一個摧毀(destroyer)函數,第一個參數是待摧毀的數組,其餘的參數是待摧毀的值。

functiondestroyer(arr){

vararr1=Array.from(arguments)[0];

vararr2=Array.from(arguments).slice

(1);

returnarr1.filter(function(item){

returnarr2.indexOf(item)<

0;

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

WheredoIbelong

先給數組排序,然後找到指定的值在數組的位置,最後返回位置對應的索引。

functionwhere(arr,num){

arr.push(num);

//插入

arr.sort(function(a,b){

returna-b;

//排序

returnarr.indexOf(num);

where([40,60],50);

下面我們來介紹風靡全球的凱撒密碼Caesarcipher,又叫移位密碼。

移位密碼也就是密碼中的字母會按照指定的數量來做移位。

一個常見的案例就是ROT13密碼,字母會移位13個位置。

由'

A'

?

N'

'

B'

O'

,以此類推。

寫一個ROT13函數,實現輸入加密字符串,輸出解密字符串。

所有的字母都是大寫,不要轉化任何非字母形式的字符(例如:

空格,標點符號),遇到這些特殊字符,跳過它們。

functionrot13(str){//LBHQVQVG!

varindex=null;

vartemp="

var_A="

A"

.charCodeAt(0);

var_Z="

Z"

varmid=(_A+_Z)/2;

i=_A&

&

index<

=mid){

temp+=String.fromCharCode(index+13);

}elseif(indexmid){

temp+=String.fromCharCode(index-13);

temp+=String.fromCharCode(index);

returntemp;

//傳入的字符串都是大寫,而大寫字母A到Z的Unicode值是升序排列的。

加密算法的核心是前13個字母Unicode值加13,後13個字母Unicode值減13從字母表重新回滾。

而其他大寫字母以外的空白符

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1