当前位置:首页 > JavaScript

js实现回文

2026-04-06 16:05:57JavaScript

实现回文检测的几种方法

方法1:使用字符串反转

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

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

方法2:使用双指针

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

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方法逐一比较字符。

js实现回文

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 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-containe…

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含inpu…

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。 &…

js怎么实现异步

js怎么实现异步

异步实现方法 JavaScript中实现异步操作主要通过以下几种方式: Promise Promise是ES6引入的异步解决方案,用于处理异步操作的成功或失败状态。 const promise =…

js验证码的实现

js验证码的实现

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

js实现轮播代码

js实现轮播代码

基础轮播实现 使用HTML、CSS和JavaScript创建一个简单的轮播效果。HTML部分定义轮播容器和图片元素。 <div class="carousel"> <div c…