Ctrl K

Обмен соседей одной чётности

Лёгкая
Дана строка digits из десятичных цифр. Разрешено не более одного раза поменять местами две соседние цифры, если обе они чётные или обе нечётные (например, 3 и 7 или 0 и 8 — можно, 4 и 5 — нельзя). Верните наименьшую в лексикографическом порядке строку, которую можно так получить. Обмен делать не обязательно.
Пример 1
digits="6285" → '2685'

6 и 2 — обе чётные, их можно поменять: "2685" меньше исходной строки.

Пример 2
digits="7429" → '7249'

Пары 7/4 и 2/9 разной чётности. А 4 и 2 обе чётные: поменяв их, получаем меньшую строку "7249".

Пример 3
digits="1357" → '1357'

Все цифры нечётные, но строка уже возрастает — любой обмен её только ухудшит.

Ограничения
  • 2 ≤ len(digits) ≤ 100
  • digits состоит только из цифр
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПалиндром из плиток ЛёгкаяПалиндром за один взмах ластика ЛёгкаяРяд по подъёмам и спадам ЛёгкаяБольше всего ровных кусков из L и R ЛёгкаяВремя под пятнами Лёгкая
загружаем Python…
Вход
digits="6285"
Ожидается
'2685'

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 127 тестов на сервере, включая скрытые.