思路:先用正则去除非字母和非数字字符,再遍历数组,比较开头和结尾对应的字符是否相等,一旦不相等返回false,要处理字符串长度小于等于1的情况,直接返回true
var isPalindrome = function(s) {
if(s.length<=1){
return true
}
let str=s.replace(/[^a-zA-Z0-9]*/g,'')
if(str.length<=1){
return true
}
let lastStr=''
for(let i=0;i<str.length;i++){
lastStr=new RegExp(str[str.length-i-1],"i")
if(!lastStr.test(str[i])){
return false
}
}
return true
};
时间复杂度O(n),空间复杂度O(1)