Ctrl K

Перестановки до зебры

Средняя
Дана строка bits из символов 0 и 1. Назовём её зеброй, если никакие два соседних символа в ней не совпадают: например, 0101 и 101 — зебры, а 0110 — нет. За один ход можно поменять местами любые два символа строки, не обязательно соседние. Верните наименьшее число ходов, которое превратит bits в зебру, или -1, если это невозможно.
Пример 1
bits="0011" → 1

Меняем местами символы с индексами 1 и 2: получается 0101.

Пример 2
bits="10101" → 0

Строка уже чередуется.

Пример 3
bits="0001" → -1

Нулей на два больше, чем единиц, — чередования не получить.

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

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