前端面试常见算法题

xiaoxiao2021-02-28  48

1、判断一个单词是否是回文?

思路:先把单词转换为数组,再通过reverse函数进行反转,进行比较。

var str="abababa"; function checkPalindrom(str){ return str==str.split('').reverse().join(''); } console.log(checkPalindrom(str));

var str="ababab"; function checkPalindrom(str){ return str==str.split('').reverse().join(''); } console.log(checkPalindrom(str));

2、去掉一组整型数组中重复的值

var arr=[1,23,11,2,1,14,5,11,9,8]; function unique(arr){ var que=new Array(); for(var i=0;i<arr.length;i++){ if(que.indexOf(arr[i])==-1){ que.push(arr[i]); } } return que; } console.log(unique(arr));

3、排序算法

冒泡排序

var arr=[1,23,11,2,1,14,5,11,9,8]; function bubbleSort(arr){ for(var i=0;i<arr.length-1;i++){ for(var j=i+1;j<arr.length;j++){ if(arr[i]>arr[j]){ var temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } } } return arr; } console.log(bubbleSort(arr));

快速排序

var arr=[1,23,11,2,1,14,5,11,9,8]; function quickSort(arr){ if(arr.length<=1){ return arr; } var left=[],right=[]; var index=Math.ceil(arr.length/2); var privot=arr.splice(index,1)[0]; for(var i=0;i<arr.length;i++){ if(arr[i]<privot){ left.push(arr[i]); }else{ right.push(arr[i]); } } return quickSort(left).concat([privot],quickSort(right)); } console.log(quickSort(arr));

4、不借助临时变量,进行两个整数的交换

function swap(a , b) { b = b - a; a = a + b; b = a - b; return [a,b]; } console.log(swap(2,4));

5、随机生成指定字符串

function randomString(n) { var str = 'abcdefghijklmnopqrstuvwxyz9876543210'; var tmp = '', i = 0, l = str.length; for (i = 0; i < n; i++) { tmp += str.charAt(Math.floor(Math.random() * l)); } return tmp; } console.log(randomString(5));

转载请注明原文地址: https://www.6miu.com/read-600043.html

最新回复(0)