实现回文js
判断字符串是否为回文
使用字符串反转后与原字符串比较的方法:
function isPalindrome(str) {
const reversedStr = str.split('').reverse().join('');
return str === reversedStr;
}
优化性能的指针法
采用双指针从两端向中间遍历:
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) {
const cleanedStr = str.toLowerCase().replace(/[^a-z0-9]/g, '');
return cleanedStr === cleanedStr.split('').reverse().join('');
}
递归实现方案
通过递归调用的方式实现:
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 isNumericPalindrome(num) {
const str = num.toString();
return str === str.split('').reverse().join('');
}
每种实现方式适用于不同场景,基础字符串反转法代码简洁,指针法性能更优,预处理版本能处理实际文本中的非字母字符,递归方案展示不同编程思路,数字处理版本扩展了应用范围。







