は、2つのアレイ(擬似コード)を持って言う:ネストされたループ内の2つの配列を3つの条件で比較できますか?
arrayA = [ "a", "b", "c", "d" ];
arrayB = [ "b", "c", "d", "e" ];
はそれだけで使用してunique items to arrayA
(arrayA.a)、common items
(B、C、D)、およびunique items to arrayB
(arrayB.e)を見つけることが可能ですネストされた形式の2つのループ?
我々は、最初の2つの目標を決定することができます
// Loop over arrayA
for (itemA in arrayA) {
// Loop over arrayB
for (itemB in arrayB) {
// Assume that arrayA.itemA does not exist in arrayB by default
exists = false;
// Check for matching arrayA.itemA in arrayB
if (itemA == itemB) {
// If true set exists variable and break the loop
exists = true;
break;
}
}
// Tells us if an item is common
if (exists) {
// Do something
}
// The additional condition we need to determine (item is unique to array b)
else if() {}
// Tells us if the item is unique to arrayA
else {
// Do something else
}
}
質問:は、我々はさらに一歩進み、第三条件を決定することができます(アイテムがarrayBに固有のものですか)?トリックは、最初のループの反復で3番目の条件に対処できるようにすることです。
ループはどのような形式(do、for、for、for)でも組み合わせてもかまいません。
ハッシュテーブルはこの問題を素早く処理します.Harckでは、arrayBのアイテムの「見える」ビットが1つでもトリックになります。配列アクセスと組み込み演算子以外のループでは、どのような操作が可能ですか?なし? –
@キリアン、申し訳ありませんが、私は何かを省略しました。最初のループの反復で条件に対処できる必要があります。 – Mohamad