Ctrl K

Наименьший код соседними обменами

Сложная
Дана строка code из цифр — запись большого целого числа без ведущих нулей — и число swaps. Можно не более swaps раз поменять местами две **соседние** цифры. Верните наименьшее число, которое можно так получить, тоже в виде строки. В ответе ведущие нули допустимы: строки одинаковой длины сравниваются как числа.
Пример 1
code='5317', swaps=3 → '1357'

Двумя обменами перетаскиваем 1 в начало: «1537». Третьим меняем местами 5 и 3: «1357».

Пример 2
code='2005', swaps=2 → '0025'

Первый ноль за один обмен встаёт в начало: «0205». Последний обмен ставит второй ноль на позицию 1: «0025». Ведущие нули в ответе допустимы.

Пример 3
code='1234', swaps=50 → '1234'

Цифры уже идут по возрастанию, лучше ничего не трогать.

Ограничения
  • 1 ≤ code.length ≤ 3 · 10⁴
  • code состоит из цифр и не начинается с нуля (если длиннее одного символа)
  • 1 ≤ swaps ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПалиндром соседними обменами СложнаяРаздача с самой младшей карты СложнаяПодходит ли строка под шаблон СложнаяКонтур городской застройки СложнаяМеньшие справа Сложная
загружаем Python…
Вход
code='5317', swaps=3
Ожидается
'1357'

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