摆明重要性:滴滴前端面经
- 提取里面所有的字符串,统一转换成小写/大写
- 利用两个指针从两头依次判断
这是我 自己没看题解做出来的,
var isPalindrome = function(s) {
let tem = '';
for (let i = 0; i < s.length; i ++) {
if (s[i] >= 'a' && s[i] <= 'z' || s[i] >= '0' && s[i] <= '9') {
tem += s[i];
} else if (s[i] >= 'A' && s[i] <= 'Z') {
tem += s[i].toLowerCase();
}
}
let i = 0, j = tem.length - 1;
while (i < j) {
if (tem[i] == tem[j]) {
i ++, j --;
} else {
return false;
}
}
return true;
};
当然可以比较优雅的利用正则表达式分离出整个字符串
let a=s.toLocaleLowerCase().match(/[a-z0-9]+/g);
if(!a) return true
let str=a.join('')