gpt4 book ai didi

java - 递归回文法调试

转载 作者:行者123 更新时间:2023-11-29 05:30:11 24 4
gpt4 key购买 nike

我正在尝试编写一种方法来测试字符串是否为回文。这是我目前所拥有的:

public static boolean isPalindrome(String word) {
boolean flag = false;

if (word.length() < 2) {
flag = true;
} else if (word.charAt(0) == word.charAt(word.length() - 1)) {
flag = isPalindrome(word.substring(1, word.length() - 2));
}

return flag;
}

我遇到的问题是,对于 "aaaba" 形式的字符串,此方法始终返回 true,其中应该导致 false 通过堆栈传播回的对在字符串的中间。我用头撞墙试图找出我的错误所在,但无济于事。也许一双全新的眼睛会发现我遗漏的东西?

最佳答案

在你的递归调用中,你应该从字符串的长度中减去 1,而不是 2:

// start index inclusive, end index exclusive
flag = isPalindrome(word.substring(1, word.length() - 1));

关于java - 递归回文法调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21359841/

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