gpt4 book ai didi

Java - 使用递归查找回文

转载 作者:行者123 更新时间:2023-12-01 22:14:53 24 4
gpt4 key购买 nike

我正在设计一个 util 类,它接受一个字符串作为参数,如果它是回文则返回 true(例如:输入:雷达 ---> 输出:true),如果不是则返回 false。对于这个类(class),我使用的是链表,但是我不知道为什么似乎有错误。这是堆栈跟踪:

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 4, Size: 4
at java.util.LinkedList.checkElementIndex(LinkedList.java:555)
at java.util.LinkedList.remove(LinkedList.java:525)
at com.run.FindPalindromes.FindMain(FindPalindromes.java:20)
at com.run.FindPalindromes.FindMain(FindPalindromes.java:16)
at com.run.Test.main(Test.java:7)

这是源代码:

public boolean FindMain(String in){
if(times == 0){
search = new LinkedList(cc.convertStringToArraylist(in));
times ++;
FindMain(null);
} else {
if(search.get(search.size()-1).equals(search.get(0))){
search.remove(0);
search.remove(search.size());
FindMain(null);
} else {
System.out.println("Not Palindrome");
return false;
}
}

return true;

}

最佳答案

search.remove(search.size()) 应该是 search.remove(search.size() - 1) 因为列表是从零开始的。如果您有四个元素,则列表索引从 0 到 3,因此位置 4 处没有任何内容。

此外,您的代码目前无法很好地处理空列表,因此您需要检查这一点。

关于Java - 使用递归查找回文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31282390/

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