Java 检查数组是否为回文数组

Java 检查数组是否为回文数组,java,arrays,palindrome,Java,Arrays,Palindrome,我无法找到如何检查阵列是否镜像的解决方案 public static void main(String[] args) { Scanner sc=new Scanner(System.in); int a=0 ; System.out.print("Array length:"); int b= sc.nextInt(); int [] array = new int [b]; for(int i=0;i<b;i++) {

我无法找到如何检查阵列是否镜像的解决方案

public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);
    int a=0 ;
    System.out.print("Array length:");
    int b= sc.nextInt();    
    int [] array = new int [b];
    for(int i=0;i<b;i++) {
        System.out.print("Type the number "+i+" element: ");
        a=sc.nextInt();
        array[i]=a;
    }
    System.out.println(Arrays.toString(array));
    sc.close();
}
publicstaticvoidmain(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
int a=0;
系统输出打印(“数组长度:”);
int b=sc.nextInt();
int[]数组=新的int[b];

对于(inti=0;i,如果您正在测试main本身中的代码,则会生成一个小片段

int length = array.length;
boolean mirror = true;
for (int index = 0; index < array.length; index++) {
    if(mirror) {
        int start = array[index];
        int end = array[--length];
        if (length < index) {
            break;
        }
        if (start != end) {
            mirror = false;
        }
    }
}
if(mirror) {
    System.out.println("is mirror");
}
else {
    System.out.println("is not mirror");
}
int length=array.length;
布尔镜像=真;
for(int index=0;index
如果您正在测试main本身中的代码,则生成一个小片段

int length = array.length;
boolean mirror = true;
for (int index = 0; index < array.length; index++) {
    if(mirror) {
        int start = array[index];
        int end = array[--length];
        if (length < index) {
            break;
        }
        if (start != end) {
            mirror = false;
        }
    }
}
if(mirror) {
    System.out.println("is mirror");
}
else {
    System.out.println("is not mirror");
}
int length=array.length;
布尔镜像=真;
for(int index=0;index
您可以通过将数组与原始数组的反向副本进行比较来检查数组是否为回文。使用Apache commons:

int[] arrCopy = Arrays.copyOf(array, array.length);
ArrayUtils.reverse(arrCopy);
boolean isPalindrome = Arrays.equals(array, arrCopy);

查看更多信息

您可以通过将数组与原始数组的反向副本进行比较来检查数组是否是回文的。使用来自Apache commons的:

int[] arrCopy = Arrays.copyOf(array, array.length);
ArrayUtils.reverse(arrCopy);
boolean isPalindrome = Arrays.equals(array, arrCopy);

查看更多信息

我不能100%确定镜像的定义。但这将检测simmetric阵列。希望有帮助

public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int a=0 ;
        System.out.print("Array length:");
        int b= sc.nextInt();    
        int [] array = new int [b];
        for(int i=0;i<b;i++) {
            System.out.print("Type the number "+i+" element: ");
            a=sc.nextInt();
            array[i]=a;
        }
        System.out.println(Arrays.toString(array));

        int l = (b - b%2)/2;
        boolean mirrored = true;
        for(int i=0;i<l;i++) {
            if(array[i]!=array[array.length-1-i]) {
                mirrored = false;
                break;
            }
        }      
        if(mirrored) {
            System.out.println("The array is mirrored!! Fantastic.");
        }
        sc.close();
    } 
publicstaticvoidmain(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
int a=0;
系统输出打印(“数组长度:”);
int b=sc.nextInt();
int[]数组=新的int[b];

对于(int i=0;i我不能100%确定镜像的定义。但这将检测simmetric数组。希望能有所帮助

public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int a=0 ;
        System.out.print("Array length:");
        int b= sc.nextInt();    
        int [] array = new int [b];
        for(int i=0;i<b;i++) {
            System.out.print("Type the number "+i+" element: ");
            a=sc.nextInt();
            array[i]=a;
        }
        System.out.println(Arrays.toString(array));

        int l = (b - b%2)/2;
        boolean mirrored = true;
        for(int i=0;i<l;i++) {
            if(array[i]!=array[array.length-1-i]) {
                mirrored = false;
                break;
            }
        }      
        if(mirrored) {
            System.out.println("The array is mirrored!! Fantastic.");
        }
        sc.close();
    } 
publicstaticvoidmain(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
int a=0;
系统输出打印(“数组长度:”);
int b=sc.nextInt();
int[]数组=新的int[b];

对于(int i=0;i作为一个人,您将如何确定该数组是否镜像?首先检查最后一个元素和第一个元素是否相等……然后检查第二个元素和前一个元素是否相等……直到您在Center会面如果我正确理解您要做的事情,请将第一个数组元素与最后一个进行比较,将第二个元素与倒数第二个元素进行比较,等等,直到找到不匹配或您到达了中间位置。由于元素的数量在运行时才确定,因此您需要使用循环来确定。作为一个人,您将如何确定该数组是否已镜像?首先检查最后一个元素和第一个元素是否相等,然后检查第二个元素和最后一个元素之前的元素是否相等……直到您在Center会面如果我正确理解您的意思的话如果您正在尝试这样做,请将第一个数组元素与最后一个数组元素进行比较,将第二个数组元素与倒数第二个数组元素进行比较,等等,直到您发现不匹配或到达中间位置。由于元素的数量直到运行时才确定,因此您需要使用循环来实现这一点。