Мини-урок · перед практикой

Переставить соседние

Обрабатываем непересекающиеся пары с чётного индекса.

Как к ней подойти

Потренируйтесь хранить последовательность значений и обращаться к нужным элементам списка.

Коротко о теме

Список хранит элементы в определённом порядке. Прежде чем менять его, решите, нужны ли исходные индексы и можно ли пройти по данным один раз. При удалении элементов будьте внимательны: индексы сдвигаются.

Ключевая идея · Обмен на месте

Граница 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), включая входные данные.