Ctrl K

Сначала нули, потом единицы

Средняя
Датчик записал строку bits из символов 0 и 1. По смыслу сигнал должен быть ступенькой: сначала идут только нули, потом только единицы (любая из частей может быть пустой). За одно исправление можно заменить любой символ на противоположный. Верните наименьшее число исправлений, после которых строка станет такой ступенькой.
Пример 1
bits='010110' → 2

Хватит двух исправлений: 1 на позиции 1 меняем на 0, 0 на позиции 5 — на 1. Получается 000111.

Пример 2
bits='1100' → 2

Можно погасить обе единицы (0000) или зажечь оба нуля (1111) — в любом случае два исправления.

Пример 3
bits='0011' → 0

Строка уже правильная, исправлять ничего не нужно.

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

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