Переставить соседние
Обрабатываем непересекающиеся пары с чётного индекса.
Как к ней подойти
Потренируйтесь хранить последовательность значений и обращаться к нужным элементам списка.
Список хранит элементы в определённом порядке. Прежде чем менять его, решите, нужны ли исходные индексы и можно ли пройти по данным один раз. При удалении элементов будьте внимательны: индексы сдвигаются.
Граница len(a)−1 гарантирует наличие второго элемента пары. Непарный хвост не затрагивается.
Проверьте перед запуском
- Шаг цикла должен быть 2.
- При нечётной длине последний элемент остаётся на месте.
Сравните свой подход
Ниже - готовое решение, другой способ, если он есть, и важные детали проверки.
Ваше принятое решение
Рекомендуемое решение: Обмен на месте
Граница len(a)−1 гарантирует наличие второго элемента пары. Непарный хвост не затрагивается.
a = list(map(int, input().split()))
for i in range(0, len(a) - 1, 2):
a[i], a[i + 1] = a[i + 1], a[i]
print(*a)
Время: O(n). Память: O(n), включая входные данные.
Другой способ: Построение нового списка
Операция XOR с 1 меняет младший бит индекса: 0↔1, 2↔3 и так далее. Последний непарный элемент копируется из исходной позиции.
a = list(map(int, input().split()))
b = []
for i in range(len(a)):
partner = i ^ 1
b.append(a[partner] if partner < len(a) else a[i])
print(*b)
Время: O(n). Память: O(n), включая входные данные.