Code Wars: 配列の類似性を判定する方法


  1. 要素の比較: まず、配列の要素を順番に比較していく方法です。要素の数や順序が完全に一致しているかどうかを確認します。以下は、Pythonでの例です。
def are_arrays_similar(arr1, arr2):
    if len(arr1) != len(arr2):
        return False
    for i in range(len(arr1)):
        if arr1[i] != arr2[i]:
            return False
    return True
# 使用例
array1 = [1, 2, 3, 4]
array2 = [1, 2, 3, 4]
array3 = [1, 2, 3, 5]
print(are_arrays_similar(array1, array2))  # True
print(are_arrays_similar(array1, array3))  # False
  1. ソートして比較: 2つの配列をそれぞれソートし、ソート後の配列が一致するかどうかを確認します。これは、要素の順序が異なっていても、要素自体が一致していれば類似と判定する方法です。以下は、JavaScriptでの例です。
function areArraysSimilar(arr1, arr2) {
    // 配列をソートする
    const sortedArr1 = arr1.sort();
    const sortedArr2 = arr2.sort();

    // ソート後の配列が一致するかどうかを確認する
    return JSON.stringify(sortedArr1) === JSON.stringify(sortedArr2);
}
// 使用例
const array1 = [1, 2, 3, 4];
const array2 = [4, 3, 2, 1];
const array3 = [1, 2, 3, 5];
console.log(areArraysSimilar(array1, array2));  // true
console.log(areArraysSimilar(array1, array3));  // false

上記の方法は、配列の要素が数値や文字列など基本的なデータ型の場合に有効です。配列内にオブジェクトや配列が含まれる場合は、要素の深い比較が必要になる場合があります。

これらの方法を使用することで、配列の類似性を判定することができます。自分のニーズや使用するプログラミング言語に合わせて、適切な方法を選択してください。