FreeCodeCamp基础算法题答案解析
来源:互联网 发布:新电脑软件下载 编辑:程序博客网 时间:2024/06/09 21:48
Reverse a String翻转字符串
function reverseString(str) { return str.split("").reverse().join("");}
Factorialize a Number阶乘
function factorial(num){ if(num<0){ num=-1; } else if(num==0 || num==1){ num=1; } else{ for(var i=num-1; i>=1; i++){ num*=i; } } return num;}
Check for Palindromes回文检验
function palindrome(str) { //去掉非字母数字、空白字符和下划线 str = str.replace( /[\W\s_]/g,"").toLowerCase(); return str === str.split("").reverse().join("");}
Find the Longest Word in a String寻找句中最长单词
得到最长单词的长度。
function findLongestWord(str){ var array=str.split(' '); array.sort(function(a,b){ return b.length-a.length; }) return array[0];}
Title Case a Sentense句中单词首字母大写
function titleCase(str) { var arr=str.toLowerCase().split(" "); var narr=[]; for(var i=0;i<arr.length;i++){ arr[i]=arr[i][0].toUpperCase()+arr[i].slice(1); }//首字母大写+截取第二到最后一个字母 return arr.join(" ");}
Return Largest Numbers in Arrays获得数组的每个子数组中最大的数字
function largestOfFour(arr){var array=[];for(var i=0; i<arr.length;i++){ //遍历 arr[i].sort(function(a,b){ return b-a; //排序 }) array.push(arr[i][0]); //取值 } return array; //返回}
Confirm the Ending检测一个字符串是否以另一个字符串结尾
function confirmEnding(str, target) { //substr(start,end); str长度减去target长度=start,target长度=end return target===str.substr(str.length-target.length,target.length);}
Repeat a string重复字符串
function repeat(str, num) { var strn=""; var i=0; while(i<num){ strn+=str; i++; } return strn;}
Truncate a string截断字符串
function truncate(str,num){
var string="";
if(num<str.length){
if(num<=3){
string=str.slice(0,num)+"...";
}
else{
string=str.slice(0,num-3)+"...";
}
return string;
}
return str;
}
var string="";
if(num<str.length){
if(num<=3){
string=str.slice(0,num)+"...";
}
else{
string=str.slice(0,num-3)+"...";
}
return string;
}
return str;
}
如果字符串的长度比指定的参数num长,则把多余的部分用...来表示。
切记,插入到字符串尾部的三个点号也会计入字符串的长度。
但是,如果指定的参数num小于或等于3,则添加的三个点号不会计入字符串的长度。
切记,插入到字符串尾部的三个点号也会计入字符串的长度。
但是,如果指定的参数num小于或等于3,则添加的三个点号不会计入字符串的长度。
Chunky Monkey将数组元素分成指定个数的子数组
将数组元素(根据给定的元素个数(示例代码中的size))划分为若干个子数组,如果最后一组数组元素个数不够,也算成一组。
function chunk(arr, size) { var narr=[]; for(var i=0;i<arr.length;i+=size){ narr.push(arr.slice(i,i+size)); }//隔size个元素划分一次(push到新数组中) return narr;}
Slasher Flick从数组中去掉指定个数元素
从数组中去掉前n个元素,得的到新数组。
function slasher(arr, howMany) { return arr.slice(howMany); //或者 //return arr.splice(howMany);}
Mutations一个字符串中是否包含另一个字符串中的所有字符
忽略顺序和大小写。示例代码中的两个字符串是一个数组的两个元素,如:["str1","str2"]。题目见fcc-mutations
function mutation(arr) { for(var i=0;i<arr[1].length;i++){ if(arr[0].toLowerCase().indexOf(arr[1][i].toLowerCase())===-1){ return false; }//将字符串2中的每一个字符与字符串一的 } return true;}
Falsy Bouncer去除数组中的假值元素
function bouncer(arr){ return arr.filter(Boolean);}
JavaScript中,假值有false
、null
、0
、""
、undefined
和 NaN
。
Seek and Destroy从数组中删除指定元素
例如从数组[1,2,3]中删除1,2:destoryer([1,2,3],2,3)
。
function destroyer(arr) { var narr = []; for(var i = 1; i < arguments.length; i++){ narr.push(arguments[i]); } narr = arr.filter(function(item,index,array){ return narr.indexOf(item) ===-1;//从narr中选出在arr中找不到的元素 }); return narr;}
Where do I belong判断一个数字在数组中的索引位置
数组元素(此代码例子中为数字数组)要按数值进行从小到大排列,求得某个数字放入排列好的数组中后的索引位置(该数字遵循大小顺序放入数组中,该数字与数组中元素值一致则放在相同大小的元素前方)。如3放在数组[1,3,5,2,4,6]中的索引值是2。题目见where do I belong。
function where(arr,num){ arr.push(num); arr.sort(function(a,b){ return a-b; //排序 }) return arr.indexOf(num);}
ROT13解密
ROT13-维基百科。
为了使代码不那么冗长,直接用了查得的字母char code数值。
function rot13(str) { // LBH QVQ VG! var arr=str.split("");//A-N,O-Z; a-m: +13 | n-z: -13//charA="A".charCodeAt();//A编码65//charZ="Z".charCodeAt();//Z编码90// middle=(charA+charZ)/2;//(90+65)/2=77.5 for(var i=0;i<arr.length;i++){ var index=str.charCodeAt(i); if(index<=77.5 && index>=65){ arr[i]=String.fromCharCode(index+13); } if(index>77.5 && index<=90){ arr[i]=String.fromCharCode(index-13); } } return arr.join("");}
阅读全文
0 0
- FreeCodeCamp基础算法题答案解析
- FreeCodeCamp日志-基础算法编程完成
- FreeCodeCamp初级js算法题小结
- freecodecamp 算法部分刷题笔记
- FreeCodeCamp javascript 算法题review part1
- FreeCodeCamp初级算法
- 在freecodecamp练习的算法题心得记录
- FreeCodeCamp日志-基础前端项目完成
- 算法题--答案仅供参考
- Intermediate Algorithm Scripting FreeCodeCamp中级算法
- FreeCodeCamp高级算法Advance Algorithm Scripting
- freeCodeCamp中一些算法练习的实现
- php基础题的答案
- freeCodeCamp简单编程题(1)
- (王晓东算法设计与分析)答案及解析
- FreeCodeCamp备查簿(3:#132-#160--JavaScript基础)
- freeCodeCamp学习:js之实现21点算法
- 算法 Robert Sedgewick 习题答案 1.1 基础编程模型
- 推荐一个github上前端大神的作品,有兴趣大家去看看。https://github.com/bailicangdu
- 郁闷的C小加(三)中缀转前后缀并计算
- JMeter-配置元件-计数器
- 02 java里的创建类对象
- 你不知道的 React Router 4
- FreeCodeCamp基础算法题答案解析
- 浏览器渲染过程工作原理
- tensorflow-入门-01-Ubuntu安装tensorflow以及常见错误libcudnn.Version cannot open shared object file No such
- tensorflow安装所遇问题:libcudnn.so.6:cannot open sharedobject file: No such file or directory
- 51nod 1603 限高二叉排列树 计数dp
- 查询每个年级的总学时数 按升序
- 输入输出
- 查询学生姓名、所属年级及电话
- 数据隐藏之Qt中d指针详解