当前位置:首页 > 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)
  • 根据需求选择是否区分大小写和过滤非字母数字字符

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

相关文章

vue实现sku算法

vue实现sku算法

Vue 实现 SKU 算法 SKU(Stock Keeping Unit)算法通常用于电商平台,用于处理商品的多规格组合(如颜色、尺寸等)及其库存管理。以下是基于 Vue 的实现方法: 数据结构设计…

react diff算法实现

react diff算法实现

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

php实现算法

php实现算法

PHP 实现常见算法的方法 PHP 可以实现多种算法,包括排序、搜索、递归、动态规划等。以下是几种常见算法的 PHP 实现方式。 冒泡排序(Bubble Sort) 冒泡排序通过多次遍历数组,每…

php 实现算法

php 实现算法

PHP 实现常见算法的方法 PHP 作为一门服务器端脚本语言,可以实现多种算法。以下是一些常见算法的 PHP 实现示例。 排序算法 冒泡排序 function bubbleSort($array)…

php实现欧几里得算法实现

php实现欧几里得算法实现

欧几里得算法简介 欧几里得算法(辗转相除法)用于计算两个非负整数的最大公约数(GCD)。其核心思想是通过反复用较小数除较大数取余,直到余数为0,此时的除数即为最大公约数。 PHP实现方法 以下是用P…

php 实现共识算法

php 实现共识算法

PHP 实现共识算法的基础方法 共识算法是分布式系统中确保数据一致性的核心机制,PHP 可通过特定设计实现简化版本的共识逻辑。以下是常见实现方式: 基于Paxos的简化实现 Paxos 算法的 PH…