实现回文js
检查字符串是否为回文
使用字符串反转和比较的方法来判断是否为回文:
function isPalindrome(str) {
const reversedStr = str.split('').reverse().join('');
return str === reversedStr;
}
忽略大小写和标点符号
在处理字符串时,通常需要忽略大小写和非字母数字字符:
function isPalindrome(str) {
const cleanedStr = str.toLowerCase().replace(/[^a-z0-9]/g, '');
const reversedStr = cleanedStr.split('').reverse().join('');
return cleanedStr === reversedStr;
}
使用指针方法
对于更高效的实现,可以使用双指针方法:
function isPalindrome(str) {
const cleanedStr = str.toLowerCase().replace(/[^a-z0-9]/g, '');
let left = 0;
let right = cleanedStr.length - 1;
while (left < right) {
if (cleanedStr[left] !== cleanedStr[right]) return false;
left++;
right--;
}
return true;
}
递归实现
递归方法也可以用于检查回文:
function isPalindrome(str) {
if (str.length <= 1) return true;
if (str[0] !== str[str.length - 1]) return false;
return isPalindrome(str.slice(1, -1));
}
处理数字回文
对于数字类型的回文检查,可以先将数字转换为字符串:

function isPalindrome(num) {
const str = num.toString();
return str === str.split('').reverse().join('');
}
这些方法涵盖了JavaScript中检查回文的不同实现方式,可以根据具体需求选择合适的方法。






