Ctrl K

Следующий зеркальный номер

Сложная
Дана строка digits из цифр — запись огромного числа-палиндрома (оно одинаково читается слева направо и справа налево). Переставьте цифры так, чтобы снова получился палиндром, причём наименьший из тех, что строго больше исходного числа. Верните его в виде строки. Если такого палиндрома нет, верните пустую строку.
Пример 1
digits='3443' → '4334'

Из цифр 3, 3, 4, 4 складываются палиндромы 3443 и 4334; следующий после 3443 — 4334.

Пример 2
digits='97179' → ''

Средняя 1 остаётся на месте, а левую половину «97» уже нельзя увеличить перестановкой, поэтому ответ — пустая строка.

Пример 3
digits='1235321' → '1325231'

Левая половина «123» меняется на следующую перестановку «132», и число отражается: 1325231.

Ограничения
  • 1 ≤ len(digits) ≤ 10⁵
  • digits состоит из цифр и является палиндромом
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЗеркальная нарезка строки СложнаяПоследний кусок по алфавиту СложнаяПалиндром соседними обменами СложнаяНепересекающиеся длинные палиндромы СложнаяДешёвый вырез до подпоследовательности Сложная
загружаем Python…
Вход
digits='3443'
Ожидается
'4334'

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