一、解题思路
使用双指针扫描字符串,注意过滤掉非字母和数字字符。
二、代码实现
const reg = /[0-9a-zA-Z]/
const isPalindrome = s => {
const max = s.length
if (max <= 1) {
return true
}
for (let i = 0, j = max - 1; i <= j;) {
const pre = s[i].toLowerCase()
const sub = s[j].toLowerCase()
if (!reg.test(pre)) {
i++
continue
}
if (!reg.test(sub)) {
j--
continue
}
if (pre !== sub) {
return false
}
i++
j--
}
return true
}
----------------------------
关注「漫谈大前端」
不断成长为一名优秀的前端开发工程师
----------------------------
您还可以在这些地方找到我: