我试图寻找解决方案,但我发现的所有解决方案都是字符串.我想要做的是检查用户输入的字符数组是否是回文.这是我到目前为止所拥有的:
public static boolean palCheck(char[] a, int index, int start) {
if (a[start] != a[index]){
return false; //base case
}
else if(a[start+1] == a[index]){
palCheck (a, index-1, start+1);
return true; //recursive step
}
else
return false;
}
如果数组的第一个和最后一个元素相同,它总是返回true.我哪里做错了?提前致谢!
解决方法:
你在平等情况下返回true,而不是你的递归解决方案(被丢弃).您还需要检查索引何时超出范围或何时相等,以便在您确认它是一个回文后,您的函数将终止.
编辑:
public static boolean palCheck(char[] a, int index, int start) {
if (index <= start) {
return true;
}
if (a[start] != a[index]){
return false; //base case
} else {
return palCheck (a, index-1, start+1); //recursive step
}
}
标签:java
来源: https://codeday.me/bug/20190727/1552891.html