问题:
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: "A man, a plan, a canal: Panama"
输出: true
示例 2:
输入: "race a car"
输出: false
答案:
/**
* @param {string} s
* @return {boolean}
*/
let s = "A man, a plan, a canal: Panama";
let isPalindrome = function (s) {
let len = s.length;
if (len == 0 || len == 1) return true;
s = s.toLowerCase(); // 转小写
s = s.replace(/[^a-z0-9]/g, ""); // 保留字母与数字
len = s.length;
let str = "#";
for (let i = 0; i < len; i++) {
str += s[i] + "#";
}
len = str.length;
for (let j = 1; j < Math.floor(len / 2); j++) {
if (str[j] != str[len - (j + 1)]) {
return false;
}
}
return true;
};