📅  最后修改于: 2023-12-03 15:38:02.755000             🧑  作者: Mango
回文是指正序和倒序排列都一样的词语、数字、句子或者字符序列。在开发中,我们经常需要检查一个给定的字符串是否为回文,下面是一些实现方法。
我们可以将字符串翻转并与原字符串进行比较来判断它是否为回文。如果两个字符串相同,则说明它是一个回文。
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 中检查一个给定的字符串是否为回文可能会在你的开发中很有用,上述方法即可很好地解决这个问题。