Ctrl K

Колодцы рядом с домами

Средняя
Улица деревни описана строкой street: символ 'H' — дом, символ '.' — пустой участок. Участки пронумерованы с нуля. В деревне хотят выкопать колодцы, и копать их можно только на пустых участках. Дом считается обеспеченным водой, если колодец есть хотя бы на одном из соседних участков — слева или справа от него. Верните наименьшее число колодцев, при котором водой обеспечены все дома. Если это невозможно, верните -1.
Пример 1
street="H.H..H" → 2

Колодец на участке 1 обслуживает дома 0 и 2, второй колодец на участке 4 — дом 5. Одним колодцем не обойтись.

Пример 2
street=".HH." → 2

Дома стоят вплотную, поэтому каждому нужен свой колодец с внешней стороны: на участках 0 и 3.

Пример 3
street="H.HHH." → -1

Дом 3 зажат между домами 2 и 4, рядом с ним нет пустого участка, поэтому ответ -1.

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

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