我尝试使用javascript递归来判断字符串是否是回文。但我无法弄清楚代码中缺少了什么。
当然,递归调用中肯定有问题。我很希望得到您的帮助。谢谢。我附上了我的代码输出结果。
var firstCharacter = function(str) {
return str.slice(0, 1);
};
var lastCharacter = function(str) {
return str.slice(-1);
};
var middleCharacters = function(str) {
return str.slice(1, -1);
};
var isPalindrome = function(str) {
if(str.length < 2) {
return true;
} else {
if(firstCharacter(str) == lastCharacter(str)) {
isPalindrome(middleCharacters(str));
} else return false;
}
};
var checkPalindrome = function(str) {
console.log("Is this word a palindrome? " + str);
console.log(isPalindrome(str));
};
checkPalindrome("a");
//Program.assertEqual(isPalindrome("a"), true);
checkPalindrome("matom");
//Program.assertEqual(isPalindrome("motor"), false);
checkPalindrome("rotor");
//Program.assertEqual(isPalindrome("rotor"), true);
当然,递归调用中肯定有问题。我很希望得到您的帮助。谢谢。我附上了我的代码输出结果。
![enter image description here](https://istack.dev59.com/GDPRR.webp)
return
语句。 - CertainPerformance.slice
返回一个数组,然后你尝试使用firstCharacter(str) == lastCharacter(str)
比较两个切片。你不能这样比较数组。 - Mulan