📌  相关文章
📜  如何使用 JavaScript 检查给定的字符串是否为回文?(1)

📅  最后修改于: 2023-12-03 15:38:02.755000             🧑  作者: Mango

如何使用 JavaScript 检查给定的字符串是否为回文?

回文是指正序和倒序排列都一样的词语、数字、句子或者字符序列。在开发中,我们经常需要检查一个给定的字符串是否为回文,下面是一些实现方法。

方法一:逆序并比较

我们可以将字符串翻转并与原字符串进行比较来判断它是否为回文。如果两个字符串相同,则说明它是一个回文。

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

console.log(isPalindrome('level')); // true
console.log(isPalindrome('hello')); // false

该函数首先将字符串拆分成字符数组,逆序排列字符数组,然后将它们合并成一个新字符串。最后,它将与原字符串进行比较。

方法二:使用双指针

我们可以使用双指针法来判断一个字符串是否为回文。让一个指针从字符串的开头开始,另一个指针从字符串的结尾开始。每次比较两个指针所指向的字符,如果有任何一个字符不匹配,则这个字符串不是回文。

function isPalindrome2(str) {
  let left = 0;
  let right = str.length - 1;

  while (left < right) {
    if (str[left] !== str[right]) {
      return false;
    }
    left++;
    right--;
  }

  return true;
}

console.log(isPalindrome2('level')); // true
console.log(isPalindrome2('hello')); // false

该函数将两个指针分别指向字符串的开头和结尾,然后在每次循环中移动这两个指针。如果这两个指针所指向的字符不同,则该字符串不是回文。如果两个指针重合,则该字符串是回文。

以上两种方法都很常见,使用其中任何一种都可以快速判断一个字符串是否为回文。

代码片段如下:

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

console.log(isPalindrome('level')); // true
console.log(isPalindrome('hello')); // false

function isPalindrome2(str) {
  let left = 0;
  let right = str.length - 1;

  while (left < right) {
    if (str[left] !== str[right]) {
      return false;
    }
    left++;
    right--;
  }

  return true;
}

console.log(isPalindrome2('level')); // true
console.log(isPalindrome2('hello')); // false

在 JavaScript 中检查一个给定的字符串是否为回文可能会在你的开发中很有用,上述方法即可很好地解决这个问题。