FCC-Basic Algorithm Scripting

来源:互联网 发布:手机淘宝详情页的尺寸 编辑:程序博客网 时间:2024/05/22 17:21

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

  • 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("");}
原创粉丝点击