前端開發工程師面試題之算法篇
阿新 • • 發佈:2019-01-23
lte ++ 整形 統計 arr 一段 面試題 uniq 兩個
1.判斷一個單詞是否是回文
註解:回文是指把相同的詞匯或句子,在下文中調換位置或顛倒過來,產生首尾回環的情趣,叫做回文,也叫回環。比如 mamam redivider .
1 function checkPalindrom(str) { 2 return str == str.split(‘‘).reverse().join(‘‘); 3 }
2.去掉一組整形數組中重復的值
註解:輸入:[1, 2, 3, 1, 2],輸出:[1, 2, 3]
方法很多,列車兩個比較典型的
方法一:
1 function uniqueArray(arr) { 2 return arr.filter(function(item, index, array){3 return array.indexOf(item, index+1) === -1 4 }) 5 }
方法二:
1 function uniqueArray(arr) { 2 return Array.from(new Set(arr)); 3 }
3.統計一個字符串出現最多的字母
註解:給出一段英文連續的英文字符竄,找出重復出現次數最多的字母
1 String.prototype.findMostCharInString = function () { 2 var str = this.valueOf(); 3 var obj = {};4 for (var i = 0; i < str.length; i++) { 5 var char = str.charAt(i); 6 if (obj[char]) { 7 obj[char]++; 8 }else{ 9 obj[char] = 1; 10 } 11 } 12 var max = 0; 13 var maxChar = null; 14 for (var key in obj) { 15 if (max < obj[key]) {16 max = obj[key]; 17 maxChar = key; 18 } 19 } 20 return maxChar; 21 }
4.排序算法
冒泡排序
1 function bubbleSort(arr){ 2 var len = arr.length; 3 for (var i = 0; i < len; i++) { 4 for (var j = 0; j < len -1 - i; j++){ 5 if (arr[j] > arr[j+1]) { 6 var temp = arr[j]; 7 arr[j] = arr[j+1]; 8 arr[j+1] = temp; 9 } 10 } 11 } 12 return arr; 13 }
選擇排序
1 function selectionSort(arr){ 2 var len = arr.length; 3 var minTemp,temp; 4 for (var i = 0; i < len-1; i++){ 5 minTemp = i; 6 for (var j = i + 1; j < len; j++){ 7 8 if (arr[j] < arr[minTemp]) { 9 minTemp = j; 10 } 11 } 12 temp = arr[i]; 13 arr[i] = arr[minTemp]; 14 arr[minTemp] = temp; 15 } 16 17 return arr; 18 }
前端開發工程師面試題之算法篇