values чётной длины, ровно половина чисел в нём чётные. Нужно расставить числа так, чтобы на чётных позициях (0, 2, 4, …) стояли чётные числа, а на нечётных — нечётные.
Делать это нужно по такому правилу. Идём по чётным позициям слева направо. Если на очередной чётной позиции стоит нечётное число, меняем его местами с числом на самой левой нечётной позиции, где сейчас стоит чётное число.
Верните массив после всех обменов.
Попробуйте обойтись без дополнительного массива и за один проход.values=[5, 8, 3, 2, 6, 7] → [8, 5, 2, 3, 6, 7]
На чётной позиции 0 стоит нечётное 5 — меняем его с ближайшим «чужим» на нечётной позиции, это 8 на позиции 1: [8, 5, 3, 2, 6, 7]. На позиции 2 стоит 3 — следующий «чужой» на нечётной позиции это 2 на позиции 3: [8, 5, 2, 3, 6, 7]. На позиции 4 всё в порядке.
values=[1, 4] → [4, 1]
Единственный обмен: [4, 1].
len(values) чётнаяvalues=[5, 8, 3, 2, 6, 7]
[8, 5, 2, 3, 6, 7]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 76 тестов на сервере, включая скрытые.