当前位置:首页 > JavaScript

js回文算法实现

2026-04-07 10:22:56JavaScript

回文算法实现

回文是指正读和反读都相同的字符串或数字。以下是几种在JavaScript中实现回文检测的方法。

方法1:使用字符串反转

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

js回文算法实现

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

// 示例
console.log(isPalindrome('madam')); // true
console.log(isPalindrome('hello')); // false

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

通过循环比较字符串的首尾字符,逐步向中间靠拢。

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

// 示例
console.log(isPalindrome('racecar')); // true
console.log(isPalindrome('world')); // false

方法3:使用递归

递归地比较字符串的首尾字符,直到字符串长度为1或0。

js回文算法实现

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('apple')); // false

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

处理包含大小写和非字母字符的字符串时,可以先将字符串转换为统一格式。

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

// 示例
console.log(isPalindrome('A man, a plan, a canal: Panama')); // true
console.log(isPalindrome('No lemon, no melon')); // true

方法5:数字回文检测

检测数字是否为回文,可以将其转换为字符串后使用上述方法,或直接通过数学运算实现。

function isPalindromeNumber(num) {
    if (num < 0) return false;
    let original = num;
    let reversed = 0;
    while (num > 0) {
        reversed = reversed * 10 + (num % 10);
        num = Math.floor(num / 10);
    }
    return original === reversed;
}

// 示例
console.log(isPalindromeNumber(121)); // true
console.log(isPalindromeNumber(123)); // false

注意事项

  • 字符串方法适用于任意字符组成的字符串,但可能需要处理大小写和特殊字符。
  • 数字方法直接操作数字,避免转换为字符串的开销。
  • 递归方法简洁但可能因调用栈过深导致性能问题,适合短字符串。

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

相关文章

php实现算法

php实现算法

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

php 实现算法

php 实现算法

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

js锚点定位算法实现

js锚点定位算法实现

实现锚点定位的基本方法 使用Element.scrollIntoView()方法是最简单的实现方式。该方法将滚动页面使指定元素出现在视口中。 document.getElementById('tar…

算法js实现

算法js实现

JavaScript 算法实现基础 JavaScript 作为一门灵活且强大的编程语言,能够实现各种常见算法。以下是一些基础算法的 JavaScript 实现示例。 排序算法 快速排序是一种高效的排…

js 签名算法实现

js 签名算法实现

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

js实现火焰算法

js实现火焰算法

火焰算法实现基础 火焰算法(Fire Effect)是一种模拟火焰燃烧效果的图形算法,常用于生成动态火焰视觉效果。在JavaScript中,可以通过Canvas或WebGL实现。 使用Canvas实…