FCC-Basic Algorithm Scripting

这里会记录下我对这个基础算法题目的解答。

  • Reverse a String
function reverseString(str) {
  return str.split("").reverse().join("");
}
  • Factorialize a Number
function factorialize(num) {
  if (typeof num === 'number' && num >= 0 && num % 1 === 0) {
    if (num === 0) {
      return 1;
    }
    var output = num;
    for(var i = 2; i < num; i++) {
      output *= i;
    }
    return output;
  } else {
    return "Input must be a non-negative integer.";
  }
}
  • Check for Palindromes
function palindrome(str) {
  // Good luck!
  var newArray = str.replace(/[^A-Za-z0-9]/gi, "").toLowerCase().split("");
  return newArray.join("") === newArray.reverse().join("");
}
  • Find the Longest Word in a String
function findLongestWord(str) {
  var array = str.split(" ");
  var max = array[0].length;
  for(var i = 1; i < array.length; i++) {
    if(array[i].length > max) {
      max = array[i].length;
    }
  }
  return max;
}
  • Title Case a Sentence
function titleCase(str) {
  str = str.toLowerCase().split(" ").map(function(val) {
    return val.replace(val.charAt(0), val.charAt(0).toUpperCase());
  });
  return str.join(" ");
}
  • Return Largest Numbers in Arrays
function largestOfFour(arr) {
  // You can do this!
  return arr.map(function(subArray) {
    var max = subArray[0];
    subArray.map(function(val) {
      if(val > max) {
        max = val;
      }
    });
    return max;
  });
}
  • Confirm the Ending
function confirmEnding(str, target) {
  // "Never give up and good luck will find you."
  // -- Falcor
  return (str.substring(str.length - target.length) === target);
}
  • Repeat a string repeat a string
function repeatStringNumTimes(str, num) {
  // repeat after me
  var output = "";
  for(var i = 0; i < num; i++) {
      output += str;
    }    
  return output;
}
  • Truncate a string
function truncateString(str, num) {
  // Clear out that junk in your trunk
  if(str.length <= num) {
    return str;
  }
  num = num > 3 ? num - 3 : num;
  return str.slice(0, num) + "...";
}
  • Chunky Monkey
function chunkArrayInGroups(arr, size) {
  // Break it up.
  var output = [];
  for(var i = 0; i < arr.length; i += size) {
    output.push(arr.slice(i, size + i));
  }
  return output;
}
  • Slasher Flick
function slasher(arr, howMany) {
  // it doesn't always pay to be first
  return arr.slice(howMany);
}
  • Mutations
function mutation(arr) {
  var smallString = arr[0].toLowerCase();
  var charArray = arr[1].toLowerCase().split("");
  for(var i = 0; i < charArray.length; i++) {
    if(smallString.indexOf(charArray[i]) === -1) {
      return false;
    }
  }
  return true;
}
  • Falsy Bouncer
function bouncer(arr) {
  // Don't show a false ID to this bouncer.
  return arr.filter(function(val) {
    return Boolean(val);
  });
}
  • Seek and Destroy
function destroyer(arr) {
  // Remove all the values
  var leng = arguments.length;
  var array = Array.from(arguments);
  return arr.filter(function(val) {
    for(var i = 1; i < leng; i++) {
      if(val === array[i]) {
        return false;
      }
    }
    return true;
  });
}
  • Where do I belong
function getIndexToIns(arr, num) {
  // Find my place in this sorted array.
  return arr.concat(num).sort(function(a, b) {
    return a - b;
  }).indexOf(num);
}
  • Caesars Cipher
function rot13(str) { // LBH QVQ VG!
  return str.toUpperCase().split("").map(function(char) {
    // if char is not from A to Z then ouput char itself
    if(char.match(/[A-Z]/) === null) {
      return char;
    }
    return String.fromCharCode(char.charCodeAt(0) % 26 + 65);
  }).join("");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值