实现回文js
检查字符串是否为回文
使用 split、reverse 和 join 方法将字符串反转并与原字符串比较:
function isPalindrome(str) {
const reversedStr = str.split('').reverse().join('');
return str === reversedStr;
}
忽略大小写和标点符号
通过正则表达式移除非字母字符并统一转换为小写:
function isPalindrome(str) {
const cleanedStr = str.replace(/[^a-zA-Z]/g, '').toLowerCase();
return cleanedStr === cleanedStr.split('').reverse().join('');
}
使用双指针法
通过左右指针向中间移动比较字符:
function isPalindrome(str) {
let left = 0;
let right = str.length - 1;
while (left < right) {
if (str[left] !== str[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('');
}
以上方法覆盖了字符串和数字的回文检测需求,可根据具体场景选择实现方式。双指针法在空间复杂度上更优(O(1)),而正则表达式方法能处理更复杂的输入格式。






