当前位置:首页 > JavaScript

js实现回文

2026-02-01 23:01:36JavaScript

判断字符串是否为回文

回文是指正读和反读都相同的字符串。以下是几种在JavaScript中判断字符串是否为回文的方法。

方法一:使用数组反转

将字符串转换为数组,反转后再合并为字符串与原字符串比较。

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

console.log(isPalindrome("madam")); // true
console.log(isPalindrome("hello")); // false

方法二:使用循环比较字符

通过循环逐个比较字符串的首尾字符。

function isPalindrome(str) {
    for (let i = 0; i < str.length / 2; i++) {
        if (str[i] !== str[str.length - 1 - i]) {
            return false;
        }
    }
    return true;
}

console.log(isPalindrome("racecar")); // true
console.log(isPalindrome("world")); // false

方法三:使用递归

递归比较首尾字符,逐步缩小字符串范围。

function isPalindrome(str) {
    if (str.length <= 1) return true;
    if (str[0] !== str[str.length - 1]) return false;
    return isPalindrome(str.slice(1, -1));
}

console.log(isPalindrome("level")); // true
console.log(isPalindrome("test")); // false

方法四:忽略大小写和非字母数字字符

处理包含大小写或特殊字符的字符串时,可以先标准化。

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

console.log(isPalindrome("A man, a plan, a canal: Panama")); // true
console.log(isPalindrome("No 'x' in Nixon")); // true

性能优化

对于长字符串,方法二(循环比较)通常性能最优,因为它可以提前终止比较。方法一和方法三可能因反转或递归开销较大。

js实现回文

应用场景

  • 方法一适合简单字符串且代码简洁的场景。
  • 方法二适合对性能要求较高的场景。
  • 方法三适合理解递归概念的练习。
  • 方法四适合处理实际输入中的复杂情况。

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

相关文章

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js实现游标

js实现游标

使用JavaScript实现游标 在JavaScript中,可以通过操作DOM元素的cursor样式属性来实现自定义游标效果。以下是几种常见的实现方法: 修改默认鼠标指针样式 通过CSS的curso…

链表实现js

链表实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针(单向链表)或两个指针(双向链表)。与数组不同,链表在内存中非连续存储,插入和删除操作更高效,但随机…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 const…

js实现跑马灯

js实现跑马灯

实现跑马灯效果 使用HTML和JavaScript可以轻松实现跑马灯效果。以下是两种常见的实现方式: HTML结构 <div id="marquee"> <span>…