摘要:總結下基礎算法題先把字符串轉化成數組,再借助數組的方法翻轉數組順序,最后把數組轉化成字符串。檢查一個字符串是否以指定的字符串結尾。刪除數組中的所有假值。加密算法的核心是前個字母值加,后個字母值減從字母表重新回滾。
總結下FreeCodeCamp基礎算法題:
Reverse a String先把字符串轉化成數組,再借助數組的reverse方法翻轉數組順序,最后把數組轉化成字符串。
function reverseString(str) { return str.split("").reverse().join(""); } reverseString("hello");Factorialize a Number
計算一個整數的階乘,如果用字母n來代表一個整數,階乘代表著所有小于或等于n的整數的乘積。階乘通常簡寫成 n! 例如: 5! = 1 2 3 4 5 = 120
function factorialize(num) { if(num < 0){ return -1; }else if(num === 0){ return 1; } else{ return num * factorialize(num-1); } } factorialize(5);//120Check for Palindromes
如果給定的字符串是回文,返回true,反之,返回false。如果一個字符串忽略標點符號、大小寫和空格,正著讀和反著讀一模一樣,那么這個字符串就是palindrome(回文)。
function palindrome(str) { return str.replace(/[W_]/g,"").toLowerCase() === str.replace(/[W_]/g,"").toLowerCase().split("").reverse().join(""); }Find the Longest Word in a String
找到提供的句子中最長的單詞,并計算它的長度。函數的返回值應該是一個數字。
//法一 /*function findLongestWord(str) { myStr=str.split(" "); var longest=0; for(var i = 0;ilongest){ longest=myStr[i].length; } } return longest; } */ //法二 function findLongestWord(str){ myStr=str.split(" "); var arrnum=[]; for(i=0 ;i Title Case a Sentence //法一 function titleCase(str) { var arr=str.toLowerCase().split(" "); for (i=0;iReturn Largest Numbers in Arrays 右邊大數組中包含了4個小數組,分別找到每個小數組中的最大值,然后把它們串聯起來,形成一個新數組。
function largestOfFour(arr) { var newArr = []; for (var i = 0 ;i < arr.length ;i++){ newArr[i] = Math.max.apply(null,arr[i]); } return newArr; } largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);Confirm the Ending檢查一個字符串(str)是否以指定的字符串(target)結尾。
function confirmEnding(str, target) { return str.substr(-target.length)===target; } confirmEnding("Bastian", "n");Repeat a string repeat a string重復一個指定的字符串 num次,如果num是一個負數則返回一個空字符串。
function repeat(str, num) { return num > 0 ? str.repeat(num) : ""; } repeat("abc", 3);Truncate a string截斷一個字符串!如果字符串的長度比指定的參數num長,則把多余的部分用...來表示。切記,插入到字符串尾部的三個點號也會計入字符串的長度。但是,如果指定的參數num小于或等于3,則添加的三個點號不會計入字符串的長度。
function truncate(str, num) { if(str.length <= num){ return str; }else { if(num > 3){ num -= 3; } var truncted = str.substr(0,num); return truncted + "..."; } } truncate("A-tisket a-tasket A green and yellow basket", 11);Chunky Monkey把一個數組arr按照指定的數組大小size分割成若干個數組塊。
function chunk(arr, size) { var myArr=[]; for (i=0;iSlasher Flick 返回一個數組被截斷n個元素后還剩余的元素,截斷從索引0開始。
function slasher(arr, howMany) { return arr.slice(howMany); } slasher([1, 2, 3], 2);Mutations如果數組第一個字符串元素包含了第二個字符串元素的所有字符,函數返回true。
function mutation(arr) { var arr1 = arr[0].toLowerCase(); var arr2 = arr[1].toLowerCase(); for(var i = 0;i < arr2.length;i++){ if (arr1.indexOf(arr2[i]) < 0) return false; } return true; } mutation(["hello", "hey"]);Falsy Bouncer刪除數組中的所有假值。在JavaScript中,假值有false、null、0、""、undefined 和 NaN。
function bouncer(arr) { return arr.filter(Boolean); } bouncer([7, "ate", "", false, 9]); 等同于: function bouncer(arr) { return arr.filter(function(item,index,array){ return Boolean(item); }); }Seek and Destroy實現一個摧毀(destroyer)函數,第一個參數是待摧毀的數組,其余的參數是待摧毀的值。
function destroyer(arr) { var arr1 = Array.from(arguments)[0]; var arr2 = Array.from(arguments).slice(1); return arr1.filter(function(item){ return arr2.indexOf(item) < 0; }); } destroyer([1, 2, 3, 1, 2, 3], 2, 3);Where do I belong先給數組排序,然后找到指定的值在數組的位置,最后返回位置對應的索引。
function where(arr, num) { arr.push(num);//插入 arr.sort(function(a,b){ return a-b;//排序 }); return arr.indexOf(num); } where([40, 60], 50);下面我們來介紹風靡全球的凱撒密碼Caesar cipher,又叫移位密碼。
移位密碼也就是密碼中的字母會按照指定的數量來做移位。一個常見的案例就是ROT13密碼,字母會移位13個位置。由"A" ? "N", "B" ? "O",以此類推。
寫一個ROT13函數,實現輸入加密字符串,輸出解密字符串。
所有的字母都是大寫,不要轉化任何非字母形式的字符(例如:空格,標點符號),遇到這些特殊字符,跳過它們。function rot13(str) { // LBH QVQ VG! var index=null; var temp=""; var _A="A".charCodeAt(0); var _Z="Z".charCodeAt(0); var mid=(_A+_Z)/2; for (i=0;i=_A && index<=mid){ temp +=String.fromCharCode(index+13); }else if(index<=_Z && index>mid){ temp +=String.fromCharCode(index-13); } else{ temp +=String.fromCharCode(index); } } return temp; } //傳入的字符串都是大寫,而大寫字母 A 到 Z 的 Unicode 值是升序排列的。加密算法的核心是前13個字母 Unicode 值加13,后13個字母 Unicode 值減13從字母表重新回滾。而其他大寫字母以外的空白符符號等等字符原樣不變。 // Change the inputs below to test rot13("SERR PBQR PNZC");
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/86696.html
摘要:比如,就是獲取第一個字符。后面的暫時不會執行直到遇見傳入的字符串為,因為有了返回值,就不會再去調用了。 原文鏈接:http://singsing.io/blog/2017/... 翻轉字符串 (Reverse a String) 題目鏈接 中文鏈接 英文鏈接 級別:初級 (Basic Algorithm Scripting) 問題解釋 這個 function 接收一個字符串參數,...
摘要:法一法二使用給定的參數對句子執行一次查找和替換,然后返回新句子。法一法二把指定的字符串翻譯成。在每一個數組中將給定的字母作為第一個堿基返回。法一后項減去前項法二檢查一個值是否是基本布爾類型,并返回或。基本布爾類型即和。 Diff Two Arrays 比較兩個數組,然后返回一個新數組,該數組的元素為兩個給定數組中所有獨有的數組元素。換言之,返回兩個數組的差異。 function dif...
摘要:在此收集一些自己遇到的一些在線練習的網站,當然大部分是。建議邊學習邊編程,學習編程是不能光看不實踐的。國外的一個練習網站,有,也有,每種語言都有自己的道場,每個用戶都有不同的等級,刷題提高等級,也可以插卡別人優秀的解決方案。 在學習的過程中會發現很多知識點如果不在工作中運用或者手寫帶驗證的話,很容易忘記。任何技能的掌握都是需要不斷練習的。在此收集一些自己遇到的一些在線練習的網站,當然大...
摘要:在此收集一些自己遇到的一些在線練習的網站,當然大部分是。建議邊學習邊編程,學習編程是不能光看不實踐的。國外的一個練習網站,有,也有,每種語言都有自己的道場,每個用戶都有不同的等級,刷題提高等級,也可以插卡別人優秀的解決方案。 在學習的過程中會發現很多知識點如果不在工作中運用或者手寫帶驗證的話,很容易忘記。任何技能的掌握都是需要不斷練習的。在此收集一些自己遇到的一些在線練習的網站,當然大...
摘要:一基礎接口的意義百度規范擴展回調抽象類的意義想不想通過一線互聯網公司面試文檔整理為電子書掘金簡介谷歌求職記我花了八個月準備谷歌面試掘金原文鏈接翻譯者 【面試寶典】從對象深入分析 Java 中實例變量和類變量的區別 - 掘金原創文章,轉載請務必保留原出處為:http://www.54tianzhisheng.cn/... , 歡迎訪問我的站點,閱讀更多有深度的文章。 實例變量 和 類變量...
閱讀 3159·2021-10-14 09:42
閱讀 3564·2019-08-26 13:56
閱讀 3445·2019-08-26 11:59
閱讀 938·2019-08-23 18:00
閱讀 2197·2019-08-23 17:51
閱讀 3522·2019-08-23 17:17
閱讀 1479·2019-08-23 15:11
閱讀 5146·2019-08-23 15:05