我目前正在编写一个小函数,它应该返回一个数组中有多少项与另一个数组完全相同,以及有多少项位于不同的位置。
该功能目前看起来像这样:
public static int[] numCorrects(char[] leftarray, char[] rightarray){
int counter[] = new int[2];
counter[0] = 0;
counter[1] = 0;
for (int i = 0; i < leftarray.length; i++) {
if(leftarray[i]==rightarray[i]) counter[0]++;
else {
for (int n = 0; n < leftarray.length; n++) {
if (leftarray[i] == rightarray[n] && leftarray[n] != rightarray[n]) {
counter[1]++;
break;
}
}
}
}
return counter;
}
如果我可以说leftarray
of(1, 2, 3, 4)
和rightarray
of(4, 3, 2, 2)
它返回(0, 3)
(0 完全匹配,3 在那里但在不同的位置)
但现在的问题是:
leftarray
如果我将输入与of(4, 3, 2, 2)
和输出交换rightarray
是错误的(应该与第一个相同)(1, 2, 3, 4)
(0, 4)
希望任何人都可以帮助我。谢谢