当前位置:首页 > JavaScript

js回文算法实现

2026-02-02 16:41:38JavaScript

回文算法的实现方法

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

js回文算法实现

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

方法四:使用正则表达式 去除非字母数字字符后判断回文。

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

注意事项

  • 处理大小写问题时可统一转换为小写
  • 处理标点符号和空格时需先清理字符串
  • 时间复杂度最优解是O(n),空间复杂度最优是O(1)

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

相关文章

react diff算法实现

react diff算法实现

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

用js来实现所有算法

用js来实现所有算法

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

js实现回文

js实现回文

判断字符串是否为回文 回文是指正读和反读都相同的字符串。以下是几种在JavaScript中判断字符串是否为回文的方法。 方法一:使用数组反转 将字符串转换为数组,反转后再合并为字符串与原字符串比较。…

js 签名算法实现

js 签名算法实现

签名算法概述 签名算法通常用于确保数据的完整性和真实性,常见于API请求、数据传输等场景。JavaScript中可以通过多种方式实现签名算法,如HMAC、RSA等。 HMAC签名实现 HMAC(Ha…

java如何判断回文数

java如何判断回文数

判断回文数的方法 回文数是指正读和反读都相同的数字。例如,121 和 1221 都是回文数。以下是几种在 Java 中判断回文数的方法。 方法一:转换为字符串反转比较 将数字转换为字符串,反转后与原…

排序算法 php实现

排序算法 php实现

以下是在PHP中实现常见排序算法的几种方法,每种算法均附上代码示例和简要说明: 冒泡排序 通过重复比较相邻元素并交换位置完成排序,时间复杂度为O(n²)。 function bubbleSort(…