Метод 1: сортировка и сравнение
Один простой способ определить сходство массивов — это сортировка обоих массивов и их сравнение поэлементно. Если отсортированные массивы равны, значит, они содержат одни и те же элементы.
def are_arrays_similar(arr1, arr2):
return sorted(arr1) == sorted(arr2)
# Example usage
array1 = [1, 2, 3, 4, 5]
array2 = [3, 2, 5, 1, 4]
print(are_arrays_similar(array1, array2)) # Output: True
Метод 2: объекты-счетчики
Класс Python Counterиз модуля collectionsпредоставляет удобный способ сравнения массивов. Он создает объект, похожий на словарь, который сопоставляет элементы с их счетчиками. Сравнивая Counterобъектов массивов, мы можем определить их сходство.
from collections import Counter
def are_arrays_similar(arr1, arr2):
return Counter(arr1) == Counter(arr2)
# Example usage
array1 = [1, 2, 3, 4, 5]
array2 = [3, 2, 5, 1, 4]
print(are_arrays_similar(array1, array2)) # Output: True
Метод 3: сравнение наборов
Использование наборов — еще один эффективный способ определения сходства массивов. Преобразовав массивы в наборы, мы можем легко проверить, совпадают ли их элементы, независимо от их порядка.
def are_arrays_similar(arr1, arr2):
return set(arr1) == set(arr2)
# Example usage
array1 = [1, 2, 3, 4, 5]
array2 = [3, 2, 5, 1, 4]
print(are_arrays_similar(array1, array2)) # Output: True
Метод 4: операция XOR
Применение операции XOR к элементам массивов может помочь выявить их сходство. Если результат XOR равен нулю, это означает, что массивы похожи.
def are_arrays_similar(arr1, arr2):
xor_result = 0
for num in arr1 + arr2:
xor_result ^= num
return xor_result == 0
# Example usage
array1 = [1, 2, 3, 4, 5]
array2 = [3, 2, 5, 1, 4]
print(are_arrays_similar(array1, array2)) # Output: True