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, left = 0, right = str.length - 1) {
if (left >= right) return true;
if (str[left] !== str[right]) return false;
return isPalindrome(str, left + 1, right - 1);
}
方法四:忽略大小写和非字母数字字符 使用正则表达式清理字符串,再进行回文检测。

function isPalindrome(str) {
const cleanedStr = str.toLowerCase().replace(/[^a-z0-9]/g, '');
return cleanedStr === cleanedStr.split('').reverse().join('');
}
注意事项
- 方法四适用于需要忽略大小写和特殊字符的场景。
- 方法二(双指针)和方法三(递归)在性能上优于方法一(反转字符串),尤其是对于长字符串。






