当前位置:首页 > JavaScript

js回文算法实现

2026-03-15 16:58:45JavaScript

回文算法实现方法

方法一:使用字符串反转 将字符串反转后与原字符串比较,若相同则为回文。

function isPalindrome(str) {
  const reversedStr = str.split('').reverse().join('');
  return str === reversedStr;
}

方法二:双指针法 使用两个指针从字符串两端向中间移动,逐个比较字符。

js回文算法实现

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);
}

方法四:忽略大小写和非字母数字 处理包含特殊字符或大小写混合的字符串。

js回文算法实现

function isPalindrome(str) {
  const cleaned = str.replace(/[^a-zA-Z0-9]/g, '').toLowerCase();
  return cleaned === cleaned.split('').reverse().join('');
}

方法五:使用数组方法 通过数组的every方法逐个比较字符。

function isPalindrome(str) {
  return str.split('').every((char, i) => {
    return char === str[str.length - i - 1];
  });
}

注意事项

  • 时间复杂度:方法一、四、五为O(n),方法二、三为O(n/2)
  • 空间复杂度:方法一、四、五需要额外存储空间,方法二、三为O(1)
  • 根据需求选择是否区分大小写和过滤非字母数字字符

标签: 回文算法
分享给朋友:

相关文章

react diff算法实现

react diff算法实现

React Diff 算法实现原理 React 的 Diff 算法(Reconciliation)是虚拟 DOM(Virtual DOM)更新的核心机制,通过高效比较新旧虚拟 DOM 树的差异,最小化…

js实现贪心算法

js实现贪心算法

贪心算法简介 贪心算法是一种在每一步选择中都采取当前状态下最优(即最有利)的选择,从而希望导致结果是全局最优的算法。贪心算法常用于解决优化问题,如最短路径、最小生成树等。 贪心算法的基本步骤 贪心算…

用js来实现所有算法

用js来实现所有算法

在 JavaScript 中实现所有算法是一个庞大的任务,因为算法种类繁多,涵盖数据结构、排序、搜索、图论、动态规划等多个领域。以下是部分常见算法的 JavaScript 实现示例,供参考: 排序算…

js锚点定位算法实现

js锚点定位算法实现

实现锚点定位的基本方法 使用Element.scrollIntoView()方法是最简单的实现方式。该方法将滚动页面使指定元素出现在视口中。 document.getElementById('tar…

实现回文js

实现回文js

判断字符串是否为回文 使用字符串反转后与原字符串比较的方法: function isPalindrome(str) { const reversedStr = str.split('').rev…

算法js实现

算法js实现

JavaScript 算法实现基础 JavaScript 作为一门灵活且强大的编程语言,能够实现各种常见算法。以下是一些基础算法的 JavaScript 实现示例。 排序算法 快速排序是一种高效的排…