gpt4 book ai didi

Java - 通过递归的方式测试一个字符数组是否为回文

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:06:52 25 4
gpt4 key购买 nike

我尝试搜索解决方案,但我找到的都是字符串。我想做的是检查用户输入的字符数组是否为回文。到目前为止,这是我所拥有的:

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。我哪里做错了?提前致谢!

最佳答案

另一种方法。递归。

public static boolean palCheck(char[] array) {
return palCheck(array, 0, array.length-1);
}

public static boolean palCheck(char[] array, int startIndex, int endIndex) {
if (startIndex >= endIndex)
return true;
else
if (array[startIndex] == array[endIndex])
return palCheck(array, startIndex+1, endIndex-1);
else
return false;
}

我写了两个方法可以这样调用

String input = "AKKA";
palCheck(input.toCharArray());

代替

String input = "AKKA";
palCheck(input.toCharArray(), 0, input.length());

String input 写什么更快:

boolean isPalindrome = new StringBuilder(input).reverse().equals(input);

关于Java - 通过递归的方式测试一个字符数组是否为回文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41913013/

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