Переставить соседние
Вы решили задачу. Теперь можно сравнить подходы.
Обрабатываем непересекающиеся пары с чётного индекса.
Авторский разбор для локальной версии на основе условия задачи. Это не выгрузка чужих посылок и не официальное решение исходного сайта.
Ваше принятое решение
Рекомендуемое решение: Обмен на месте
Граница 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), включая входные данные.
На что обратить внимание
- Шаг цикла должен быть 2.
- При нечётной длине последний элемент остаётся на месте.
Рекомендация учитывает сложность и читаемость для этой задачи. Единственного самого быстрого решения для всех размеров входа и всех компьютеров может не быть.