前端面试算法篇

xiaoxiao2021-02-28  83

随机生成指定长度的字符串

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

找出一个正数数组的最大差值

思路:要找出最大差值,无非就是找出最大值和最小值然和求差即可。

function getMaxProfit(arr) { var minPrice = arr[0]; var maxProfit = 0; for (var i = 0; i < arr.length; i++) { var currentPrice = arr[i]; minPrice = Math.min(minPrice, currentPrice); var potentialProfit = currentPrice - minPrice; maxProfit = Math.max(maxProfit, potentialProfit); } return maxProfit; }

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

let a = 1; let b = 2; function swap(a,b){ b = b - a; a = b + a; b = a - b; } swap(a,b);// 2 1

统计一个字符串中出现最多的字母

function findMaxDuplicationChar(str) { if(str === '') { console.log("str is empty"); } else if(str.length === 1) { console.log(str); } else { let char = []; for(let i=0; i<str.length; i++) { if(!char[str.charAt(i)]) { char[str.charAt(i)] = 1; } else { char[str.charAt(i)] += 1; } } let maxChar = ''; maxValue = 1; for(let j in char) { if(char[j] >= maxValue) { maxChar = j; maxValue = char[j]; } } console.log(maxChar); } } let str = 'aaabb'; findMaxDuplicationChar(str);//a

去掉一组整型数组重复的值

let arr = [1,13,24,11,11,14,1,2]; for(let i=0; i<arr.length; i++) { for(let j=i+1; j<arr.length; j++) { if(arr[i] === arr[j]) { arr.splice(i,1); } continue; } } console.log(arr); // 输出结果为:[13, 24, 11, 14, 1, 2]

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

function checkPalindrom(str) { return str == str.split('').reverse().join(''); }
转载请注明原文地址: https://www.6miu.com/read-22470.html

最新回复(0)