当前位置:首页 > JavaScript

js实现回文

2026-04-06 16:05:57JavaScript

实现回文检测的几种方法

方法1:使用字符串反转

将字符串反转后与原字符串比较,若相同则为回文。

js实现回文

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

方法2:使用双指针

从字符串两端向中间遍历,逐个比较字符是否相同。

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

方法3:递归实现

通过递归方式比较首尾字符,逐步缩小比较范围。

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

方法4:使用数组方法

利用数组的every方法逐一比较字符。

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

注意事项

  1. 上述方法默认区分大小写,如需忽略大小写,可先统一转换为小写:
    str = str.toLowerCase();
  2. 若需忽略标点符号和空格,可使用正则表达式过滤:
    str = str.replace(/[^a-zA-Z0-9]/g, '');

性能比较

  • 方法1和方法4会创建新字符串或数组,内存开销较大。
  • 方法2和方法3无需额外存储空间,更适合处理长字符串。
  • 递归实现(方法3)可能存在调用栈溢出风险,超长字符串建议用迭代方法。

标签: 回文js
分享给朋友:

相关文章

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previo…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 /…

js实现目录

js实现目录

实现目录的基本思路 在JavaScript中实现目录功能通常涉及以下几个核心步骤:解析文档中的标题元素(如h1-h6),动态生成目录结构,并添加交互逻辑(如点击跳转)。以下是具体实现方法: 解析标题…

js验证码的实现

js验证码的实现

验证码的基本实现原理 验证码(CAPTCHA)的核心目标是区分人类用户和自动化程序。JavaScript可用于生成或验证客户端验证码,但需注意纯前端验证可能被绕过,通常需结合后端验证。 纯前端验证码…

js实现显示隐藏

js实现显示隐藏

显示隐藏的实现方法 在JavaScript中,实现元素的显示和隐藏可以通过多种方式完成。以下是几种常见的方法: 修改CSS的display属性 通过改变元素的display属性可以在none(隐藏)…