js
/**
* 验证回文串
* 回文串,一个字符串,忽略大小写和非字母数字,正着读和反着读都是一样的
* 例如:'abcba' 是回文串
*/
/**
* @param {string} s
* @return {boolean}
*/
var isPalindrome = function (s) {
let i = 0,
j = s.length - 1
const isValid = (s) => /[a-zA-Z0-9]/.test(s)
while (i < j) {
const left = s[i].toLowerCase()
const right = s[j].toLowerCase()
if (!isValid(left)) {
i++
} else if (!isValid(right)) {
j--
} else if (left === right) {
i++
j--
} else {
return false
}
}
return true
}