fcc练习:基础算法

251 Reverse a String

翻转字符串

function reverseString(str) {
  // 请把你的代码写在这里
  var temp;
  var array = str.split("");
  temp = array.reverse();
  str = temp.join("");
  return str;
}

reverseString("hello");

253 Check for Palindromes

检查回文字符串

function palindrome(str) {
  // 请把你的代码写在这里
  var reg = /(\s+)/g;
  var newStr = str.replace(reg,"");
  reg = /([^a-zA-Z0-9])/g;
  newStr =newStr.replace(reg,"");
  newStr = newStr.toLowerCase();
  var array = newStr.split("");
  array.reverse();
  var reverseStr = array.join("");
  return reverseStr==newStr;
}

palindrome("eye");

参考文档:https://www.cnblogs.com/xiaokeai0110/p/9151811.html

https://blog.csdn.net/weixin_41702247/article/details/81483218(这篇直接使用/[\W_]/g来匹配非字母数字的表达式)

254 Find the Longest Word in a String

找出最长单词

function findLongestWord(str) {
  // 请把你的代码写在这里
  var array = str.split(" ");
  var temp;
  for(var i= 0 ;i<array.length;i++){

 //傻逼了这里  array[i].length>array[0].length是个表达式 一直作为单独一行在报错
     if(array[i].length>array[0].length) array[0] = array[i];


  }
  return array[0].length;
}

findLongestWord("The quick brown fox jumped over the lazy dog");
255 Title Case a Sentence

句中单词首字母大写

function titleCase(str) {
  // 请把你的代码写在这里
  str= str.toUpperCase();
  var array = str.split(" ");
  for(var i=0;i<array.length;i++){
    for(var j=0;j<=array[i].length;j++){
       if(array[i].length>=2){
         array[i] = array[i].substring(0,1) + array[i].toLowerCase().substring(1,array[i].length);
       }
    }
  }
  return array.join(" ");
}

titleCase("HERE IS MY HANDLE HERE IS MY SPOUT");

256 Return Largest Numbers in Arrays

找出多个数组中的最大数

function largestOfFour(arr) {
  // 请把你的代码写在这里
  for(var i = 0;i<arr.length;i++){
    for(var j=0;j<arr[i].length;j++){
      if(arr[i][j] >arr[i][0])arr[i][0] = arr[i][j];
    }
    arr[i] =arr[i][0];
  }
  return arr;
}

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

257Confirm the Ending

检查字符串结尾

function confirmEnding(str, target) {
  // 请把你的代码写在这里
  return str.substr(str.length-target.length,str.length)==target;
}

confirmEnding("Bastian", "n");

258Repeat a string repeat a string

重复输出字符串

function repeat(str, num) {
  // 请把你的代码写在这里
  var temp="";
  for(var i =0;i<num;i++){
    temp+=str;
  }
  return temp;
}

repeat("abc", 3);

259Truncate a string

截断字符串

function truncate(str, num) {
  // 请把你的代码写在这里
  if(str.length==num) return str;
  if(str.length>num&&num>3)  return str.slice(0,num-3)+"...";
  if(num<3) return str.slice(0,num)+"...";
  return str.slice(0,num);
}

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

260Chunky Monkey

猴子吃香蕉, 分割数组

function chunk(arr, size) {
  // 请把你的代码写在这里
  var array = [];
  var i=0; 
  while(i<arr.length){
    array.push(arr.slice(i,i+size>arr.length?arr.length:i+size));
    i = i+size;
  }
  return array;
}

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

261Slasher Flick

截断数组

function slasher(arr, howMany) {
  // 请把你的代码写在这里
  return howMany===0?arr: arr.slice(howMany,arr.length);
   
}

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

262Mutations

比较字符串

function mutation(arr) {
  // 请把你的代码写在这里
  for(var i = 0;i<arr[1].length;i++){
    if(arr[0].toLowerCase().indexOf(arr[1][i].toLowerCase())==-1)
      return false;
  }
  return true ;
}

mutation(["hello", "Hello"]);

263Falsy Bouncer

过滤数组假值

function bouncer(arr) {
  // 请把你的代码写在这里
  return arr.filter(function(element){
    return !(element===false||element===null||element===""||element===0||element===undefined||Number.isNaN(element));
  });
}

bouncer([[7, "ate", "", false, 9]]);

264Seek and Destroy

摧毁数组

function destroyer(arr) {
  // 请把你的代码写在这里
  var array = Array.from(arguments);
  return array[0].filter(function(val){
    var flag= true;
    for(var i=1 ;i<array.length;i++){
      if(val===array[i]) {
        flag=false;
        break;
      }
    }
    return flag;
  });
}

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

265Where do I belong

数组排序并找出元素索引

function where(arr, num) {
  // 请把你的代码写在这里
  arr = arr.sort(function(a, b) {
    return a - b;
  });
  for(var i=0;i<arr.length;i++){
    if(num <=arr[i])
    return i;
  }
  return arr.length;
}

where([10, 20, 30, 40, 50], 30);

266 Caesars Cipher

凯撒密码

function rot13(str) { // LBH QVQ VG!
  // 请把你的代码写在这里
  str = str.toUpperCase();
  var newStr = "";
  for(var i=0;i<str.length;i++){
    var index = str.charCodeAt(i);
    if(index>=65&&index<=90){
      if(index+13>90) newStr += String.fromCharCode(index-13);
      else newStr += String.fromCharCode(index+13);
    }else{
       newStr += str[i];
    }
  }
  return newStr;
}

rot13("SERR PBQR PNZC");  // 你可以修改这一行来测试你的代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值