前端经典算法题

54次阅读

共计 888 个字符,预计需要花费 3 分钟才能阅读完成。

1: 判断一个字符串是否回文
回文是指类似于“上海自来水来自海上”或者“madam”,从前往后和从后往前读,字符串的内容是一样的,称为回文。判断一个字符串是否是回文有很多种思路:

1: 创建一个与原字符串前后倒过来的新字符串,比较二者是否相等,如果相等则是回文

1.1 利用中介 Array.reverse()的反转数组的特性

function isPalindRome(str) {return str.split('').reverse().join('') === str;

}

console.log(isPalindRome('madam')); //true
console.log(isPalindRome('mada')); //false

1.2 不利用任何方法,手动创建新字符串

function isPalindRome(str) {
    let newStr = '';
    for(let i = str.length - 1; i >= 0; i --){newStr = newStr + str[i];

    }
    return newStr === str;

}

console.log(isPalindRome('madam'));
console.log(isPalindRome('mada')); 

2: 从字符串的 开始,依次比较字符串组是否相等,逐渐往中间收,如果全部相等,则是回文

function isPalindRome(str) {
    let length = str.length;
    for(let i = 0; i <= Math.floor(str.length / 2); i ++){if(str[i] !== str[length - 1 - i]){return false;}
    }

    return true;

}

console.log(isPalindRome('aabbaa')); //true
console.log(isPalindRome('aabaa')); //true
console.log(isPalindRome('abb')); //false

2: 数组去重
3: 统计字符串中出现最多次数的字符及其次数
4: 随机生成指定长度字符串
5: 二分查找
6: 使用闭包获取每个 li 的 index

正文完
 0