在java中使用递归解决leetcode上的回文问题
我调试器代码如下所示,在“返回true”之前,所有东西都会查找。它不会立即返回,而是以某种方式返回。但是,我在调用方法本身时不赋值 我想如果我尝试使用while,在我完成递归之后,它会简单得多 谁能帮我找出这个错误吗 提前谢谢在java中使用递归解决leetcode上的回文问题,java,recursion,palindrome,Java,Recursion,Palindrome,我调试器代码如下所示,在“返回true”之前,所有东西都会查找。它不会立即返回,而是以某种方式返回。但是,我在调用方法本身时不赋值 我想如果我尝试使用while,在我完成递归之后,它会简单得多 谁能帮我找出这个错误吗 提前谢谢 class Solution { public boolean isPalindrome(String s) { s = s.toUpperCase(); return isPalindromeHelper(s, 0, s.leng
class Solution {
public boolean isPalindrome(String s) {
s = s.toUpperCase();
return isPalindromeHelper(s, 0, s.length() - 1);
}
public boolean isPalindromeHelper(String s, int first,int last) {
if(first >= last) {
return true;
} else {
char chead = s.charAt(first);
char ctail = s.charAt(last);
if(!Character.isLetterOrDigit(chead) || !Character.isLetterOrDigit(ctail)) {
if(!Character.isLetterOrDigit(chead)) {
first++;
}
if(!Character.isLetterOrDigit(ctail)) {
last--;
}
isPalindromeHelper(s, first, last);
}
else if(chead != ctail) {
return false;
}
}
first++;
last--;
return isPalindromeHelper(s, first, last);
}
}
我看你的代码没有问题。它似乎工作得很好。你可能想 更改以下内容以在方法调用中包含一个返回
if(!Character.isLetterOrDigit(ctail)) {
last--;
}
return isPalindromeHelper(s, first, last); // <- added return
if(!Character.isleterordigit(ctail)){
最后--;
}
返回isAlindromeHelper(第一个、最后一个);//在添加回报之前,如果我尝试“一个人,一个计划,一条运河:巴拿马”,它似乎是错误的。然而,在我添加了“return”之后,它不知怎么起作用了。