关于FCC认证的,部分题型做个记录

来源:互联网 发布:c语言技术面试题目 编辑:程序博客网 时间:2024/05/16 04:37

本人博主 孤雪飘寒原创,对你有帮助请点赞,有想法或问题请在下面评论说出来,博主第一时间回复,转载请注明出处,谢谢

JS篇

1.整数的阶乘

function factorialize(num) {    return (num<1) ? num = 1 : num*factorialize(num-1);}

2.检查字符串是否回文

function palindrome(str) {  // Good luck!  //忽略标点符号  str=str.replace(/\W+/g,'');  str=str.replace(/\_+/g,'');  //忽略大小写  str=str.toLowerCase();  //重组  var newArray=str.split('').reverse().join('');  if(str==newArray){    return true;  }else{    return false;  }}palindrome("eye");

3.检查字符串中最长单词长度

function findLongestWord(str) {  var arr=str.split(' ');  var bjs=0;  for(var i=0;i<arr.length;i++){    var arrNum=arr[i].length;    if(arrNum>bjs){      bjs=arrNum;    }   }  return bjs;}findLongestWord("The quick brown fox jumped over the lazy dog");

4.首字母全部大写

function titleCase(str) {  str=str.toLowerCase().split(' ');  var newStr='';  var newArray=[];  for(var i=0;i<str.length;i++){    var a=str[i][0].toUpperCase();    var str1 = str[i].replace(/^\w/,a);    newArray.push(str1);  }  newStr=newArray.join(' ');  return newStr;}titleCase("I'm a little tea pot");

5.二维数组中最大值组成一个新的数组

function largestOfFour(arr) {  // You can do this!  var newArray=[];  for(var i=0;i<arr.length;i++){    var bjs=0;    for(var j=0;j<arr[i].length;j++){      if(arr[i][j]>bjs){        bjs=arr[i][j];        newArray[i]=bjs;      }    }  }  return newArray;}largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 1857, 1]]);

6.判断第二参数的字符串是否存在于第一参数字符串中

function confirmEnding(str, target) {  // "Never give up and good luck will find you."  // -- Falcor  return  str.substr(-(target.length))==target?true:false;}confirmEnding("He has to give me a new name", "name");

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

function repeat(str, num) {  // repeat after me  if(num<=0){    return "";  }var arr=[];  for(var i=0;i<num;i++){    arr[i]=str;  }  str=arr.join("");  return str;}repeat("abc", 2);

8.截取字符长度,根据参数大小判断添加后长度

function truncate(str, num) {  // Clear out that junk in your trunk  if(str.length > num){    if(num <= 3){      str = str.slice(0,num).concat("...");    }else{      str = str.slice(0,num-3).concat("...");    }      }  return str;}truncate("A-tisket a-tasket A green and yellow basket", "A-tisket a-tasket A green and yellow basket".length + 2);

9.将一个数组根据参数拆分成二维数组

function chunk(arr, size) {  // Break it up.  var newArray=[];  for(var i=0;i<arr.length;i=i+size){    var index=i+size;  var tempArray=arr.slice(i,index);  newArray.push(tempArray);   //简化写法  //   newArray.push(arr.slice(i,i+size));  }    return newArray;}chunk(["a", "b", "c", "d"], 2);

10.数组的切割

function slasher(arr, howMany) {  // it doesn't always pay to be first  var newArray=[];  if(howMany>arr.length){    return newArray;  }  newArray=arr.slice(howMany);  return newArray;}slasher([1, 2, 3], 2);

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

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

function mutation(arr) {   var str1=arr[0].toLowerCase();   var str2=arr[1].toLowerCase();   //1.整句存在  //return str1.indexOf(str2)<0?false:true;  //2.每个都存在    for(var i=0;i<str2.length;i++){      if(str1.indexOf(str2.charAt(i))==-1){        return false;       }    }  return true;}mutation(["zyxwvutsrqponmlkjihgfedcba", "qrstu"]);

12.删除数组中的所有假值。

在JavaScript中,假值有false、null、0、”“、undefined 和 NaN。

function bouncer(arr) {  // Don't show a false ID to this bouncer.  var newArr=arr.filter(function(x){    return Boolean(x)!=false;  });  return newArr;}bouncer([7, "ate", "", false, 9,0]);

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

function destroyer(arr) {  // Remove all the values  var oneArr=arguments[0];  var newArr=[];  var fArr=[];  //获取所有要剔除的条件  for(var i=1;i<arguments.length;i++){    newArr[i-1]=arguments[i];  }  //过滤  fArr=oneArr.filter(function(x){    for(var i=0;i<newArr.length;i++){      if(x==newArr[i]){        return false;      }    }    return true;  }); return fArr;}destroyer([1, 2, 3, 1, 2, 3], 2, 3);

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

function where(arr, num) {  // Find my place in this sorted array.  arr.push(num);  arr.sort(function(a,b){return a-b;});  var indexArr=0;  for(var i=0;i<arr.length;i++){    if(arr[i]==num){      indexArr=i;      return indexArr;    }      }  return  indexArr;}where([40, 60], 50);

15.写一个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);      }    }    str1.push(arr1.join(""));  } return str1.join(" "); //return String.charCodeAt(str);}// Change the inputs below to testrot13("Z");
0 0
原创粉丝点击