Ctrl K

Переворот головы или хвоста

Средняя
Дана строка bits длины n из символов 0 и 1. Разрешены две операции: - выбрать индекс i и инвертировать все символы с позиции 0 по i включительно — стоимость i + 1; - выбрать индекс i и инвертировать все символы с позиции i по n - 1 включительно — стоимость n - i. Инвертировать символ — значит заменить 0 на 1 и наоборот. Верните минимальную суммарную стоимость, за которую все символы строки можно сделать одинаковыми.
Пример 1
bits="1100" → 2

Переворачиваем хвост, начиная с позиции 2: стоимость 4 − 2 = 2, получаем 1111.

Пример 2
bits="10110" → 4

Голову до позиции 0 — за 1 (00110), хвост с позиции 4 — за 1 (00111), голову до позиции 1 — за 2 (11111). Итого 4.

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

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