Ctrl K

Наибольшая двоичная строка после замен

Средняя
Дана строка bits из символов 0 и 1. Сколько угодно раз и в любом порядке можно делать две замены: - найти в строке пару 00 и заменить её на 10; - найти в строке пару 10 и заменить её на 01. Строку читаем как двоичную запись числа. Верните строку, которая получится, если сделать это число как можно больше. Длина строки при заменах не меняется.
Пример 1
bits="0110010" → '1110111'

Сдвигаем нули влево друг к другу (10 → 01), пока они не встанут подряд: 0000111. Затем трижды 00 → 10: 1000111 → 1100111 → 1110111.

Пример 2
bits="1011" → '1011'

Ноль всего один, и единственная возможная замена 10 → 01 только уменьшит число. Строка остаётся как есть.

Пример 3
bits="111" → '111'
Ограничения
  • 1 ≤ len(bits) ≤ 10⁵
  • bits состоит только из 0 и 1
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамое большое число из кусков СредняяКаждая буква по разу СредняяВычеркнуть цифры ради минимума СредняяНаименьшая последовательность по стрелкам СредняяКольцо из разворачиваемых слов Средняя
загружаем Python…
Вход
bits="0110010"
Ожидается
'1110111'

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