Различные способы проверить, чередуется ли массив в Python

Чтобы проверить, чередуется ли массив, вы можете использовать несколько методов Python. Вот несколько примеров:

Метод 1: использование цикла

def is_alternating(arr):
    n = len(arr)
    for i in range(n - 1):
        if arr[i] == arr[i + 1]:
            return False
    return True
# Example usage
array1 = [1, 2, 1, 2, 1, 2]
array2 = [1, 2, 3, 4, 5, 6]
print(is_alternating(array1))  # Output: True
print(is_alternating(array2))  # Output: False

Метод 2: использование понимания списка

def is_alternating(arr):
    return all(arr[i] != arr[i + 1] for i in range(len(arr) - 1))
# Example usage
array1 = [1, 2, 1, 2, 1, 2]
array2 = [1, 2, 3, 4, 5, 6]
print(is_alternating(array1))  # Output: True
print(is_alternating(array2))  # Output: False

Метод 3: использование set

def is_alternating(arr):
    return len(set(arr)) == len(arr)
# Example usage
array1 = [1, 2, 1, 2, 1, 2]
array2 = [1, 2, 3, 4, 5, 6]
print(is_alternating(array1))  # Output: True
print(is_alternating(array2))  # Output: False

Метод 4: использование нарезки

def is_alternating(arr):
    return arr[::2] != arr[1::2]
# Example usage
array1 = [1, 2, 1, 2, 1, 2]
array2 = [1, 2, 3, 4, 5, 6]
print(is_alternating(array1))  # Output: True
print(is_alternating(array2))  # Output: False

Метод 5. Использование itertools

from itertools import groupby
def is_alternating(arr):
    return all(k for k, _ in groupby(arr))
# Example usage
array1 = [1, 2, 1, 2, 1, 2]
array2 = [1, 2, 3, 4, 5, 6]
print(is_alternating(array1))  # Output: True
print(is_alternating(array2))  # Output: False