我无法解决如何检查数组是否已镜像
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]
我在console中得到了它,但是现在我不知道该如何镜像。
答案 0 :(得分:1)
我不确定您对镜像的定义是否100%确定。但这将检测到模拟数组。希望能帮助到你。
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();
}
答案 1 :(得分:0)
如果要在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");
}
答案 2 :(得分:0)
您可以通过将其与原始阵列的反向副本进行比较来检查该阵列是否为回文。使用来自Apache Commons的ArrayUtils.reverse
:
auth_openidc_module