共计 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
正文完
发表至: javascript
2019-09-07