1. 程式人生 > >前端開發工程師面試題之算法篇

前端開發工程師面試題之算法篇

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 }

前端開發工程師面試題之算法篇