首页 > 解决方案 > 检查数组是否为回文

问题描述

我无法解决如何检查阵列是否已镜像

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();
}

当我输入例如 Array length: 3 并且我的数字是 1 2 1

数组长度:3
键入数字 0 元素:1
键入数字 1 元素:2
键入数字 2 元素:1
[1, 2, 1]

我在控制台中得到了这个,但现在我不知道如何说它是否被镜像。

标签: javaarrayspalindrome

解决方案


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

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

查看更多如何在 Java 中反转 int 数组?


推荐阅读