gpt4 book ai didi

java - 在java中使用递归解决leetcode上的回文问题

转载 作者:行者123 更新时间:2023-12-01 18:46:22 25 4
gpt4 key购买 nike

我调试如下所示的代码,一切看起来都找到,直到“返回 true”。它不会立即返回,而是以某种方式返回。但是,当我调用方法本身时,我不会赋值。

我想如果我尝试使用while,完成递归后会简单得多。

有人可以帮我找出这个错误吗?

提前致谢!

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

如果您能解释一下您认为有问题的地方,我会尽力提供帮助。

关于java - 在java中使用递归解决leetcode上的回文问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59833409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com