Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查数组是否为回文数组,并将索引作为参数 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 - Fatal编程技术网

检查数组是否为回文数组,并将索引作为参数 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