1: 判断一个字符串是否回文
回文是指类似于“上海自来水来自海上”或者“madam”,从前往后和从后往前读,字符串的内容是一样的,称为回文。判断一个字符串是否是回文有很多种思路:
1: 创建一个与原字符串前后倒过来的新字符串,比较二者是否相等,如果相等则是回文
1.1 利用中介Array.reverse()的反转数组的特性
function isPalindRome(str) { return str.split('').reverse().join('') === str;}console.log(isPalindRome('madam')); //trueconsole.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')); //trueconsole.log(isPalindRome('aabaa')); //trueconsole.log(isPalindRome('abb')); //false
2: 数组去重
3: 统计字符串中出现最多次数的字符及其次数
4: 随机生成指定长度字符串
5: 二分查找
6: 使用闭包获取每个li的index