私は現在、配列のいくつの項目が他の配列とまったく同じ位置にあり、いくつが異なる位置にあるのかを返す小さな関数を書いています。
関数は現在次のようになっています。
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
の(1, 2, 3, 4)
と言ってみましょうrightarray
(4, 3, 2, 2)
それが返されます(0, 3)
(0の完全一致、3はそこにありますが、異なる位置にあります)
しかし今問題:
入力と出力を交換するとleftarray
、どちらが間違っているか(最初のものと同じである必要があります)(4, 3, 2, 2)
rightarray
(1, 2, 3, 4)
(0, 4)
誰かが私を助けてくれることを願っています。どうも