检查数组是否为回文数组,并将索引作为参数 import java.util.Scanner; 公共类回文1{ 公共静态布尔回文(int[]num,int索引){ //把逻辑写在这里 int length=num.length; int end=--长度; 如果(长度=0 | |长度=1) 返回true; 如果(索引>=结束) 返回true; 如果(num[index]!=num[end]) 返回false; 返回回文(num,index+1); } 公共静态void main(字符串参数[]){ 扫描仪sc=新的扫描仪(System.in); int num[]=新的int[5]; 对于(int i=0;i
如果我有一个可以自动递减的结束索引值,这是很容易的。然而,仅仅使用索引,我们如何解决它?请记住,我不应该更改检查数组是否为回文数组,并将索引作为参数 import java.util.Scanner; 公共类回文1{ 公共静态布尔回文(int[]num,int索引){ //把逻辑写在这里 int length=num.length; int end=--长度; 如果(长度=0 | |长度=1) 返回true; 如果(索引>=结束) 返回true; 如果(num[index]!=num[end]) 返回false; 返回回文(num,index+1); } 公共静态void main(字符串参数[]){ 扫描仪sc=新的扫描仪(System.in); int num[]=新的int[5]; 对于(int i=0;i,java,palindrome,Java,Palindrome,如果我有一个可以自动递减的结束索引值,这是很容易的。然而,仅仅使用索引,我们如何解决它?请记住,我不应该更改isAlindrome方法的参数数量。 提前感谢。来自 class-GfG{ 静态空回文(int-arr[],int-n) { //将标志初始化为零。 int标志=0; //循环直到数组大小n/2。 对于(int i=0;i也从end中减去index) int end = --length; end -= index; 从两端检查相应的索引 public static boolean
isAlindrome
方法的参数数量。提前感谢。来自
class-GfG{
静态空回文(int-arr[],int-n)
{
//将标志初始化为零。
int标志=0;
//循环直到数组大小n/2。
对于(int i=0;i也从end
中减去index
)
int end = --length;
end -= index;
从两端检查相应的索引
public static boolean isPalindrome(int[] num, int index) {
int length = num.length;
int end = --length;
end -=index;
print(num, index, end);
if (length == 0 || length == 1)
return true;
if (index >= end)
return true;
if(num[index]!=num[end])
return false;
return isPalindrome(num, index+1);
}
private static void print(int num[], int index, int end) {
for (int i = 0; i < num.length; i++) {
if(i == index || i == end)
System.out.print("["+num[i]+"]");
else
System.out.print("_,");
}
System.out.println();
}
这取决于索引的含义和使用方法。通常,你甚至不需要索引来检查回文。是的,但我想了解我们如何使用递归。因此,挑战:-)谢谢,但我忘了提到如何使用递归实现它了?isPalindrome应该被递归调用。它是通过递归实现的。保持代码不变。检查我是否更新了答案。
public static boolean isPalindrome(int[] num, int index) {
int length = num.length;
int end = --length;
end -=index;
print(num, index, end);
if (length == 0 || length == 1)
return true;
if (index >= end)
return true;
if(num[index]!=num[end])
return false;
return isPalindrome(num, index+1);
}
private static void print(int num[], int index, int end) {
for (int i = 0; i < num.length; i++) {
if(i == index || i == end)
System.out.print("["+num[i]+"]");
else
System.out.print("_,");
}
System.out.println();
}
[1]_,_,_,[1]
_,[2]_,[2]_,
_,_,[3]_,_,
true