Ctrl K

Проверка трёх зданий

Средняя
Вдоль улицы стоят здания, их типы записаны в строке street: '0' — офис, '1' — кафе. Инспектор хочет выбрать три здания (в порядке следования по улице) для проверки, но так, чтобы типы чередовались: никакие два соседних в выбранной тройке здания не должны быть одного типа. Иначе говоря, подходят тройки вида «офис, кафе, офис» и «кафе, офис, кафе». Верните количество способов выбрать такую тройку. Способы различаются набором выбранных зданий.
Пример 1
street='10011' → 4

Подходят только тройки вида «кафе, офис, кафе»: первый дом, затем дом 1 или 2, затем дом 3 или 4 — 2 · 2 = 4 способа. Тройку «офис, кафе, офис» не собрать: после кафе офисов нет.

Пример 2
street='000111' → 0

Все офисы стоят до всех кафе, поэтому чередующуюся тройку выбрать нельзя.

Ограничения
  • 3 ≤ street.length ≤ 10⁵
  • street[i] — '0' или '1'
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПрыжки по целым плиткам СредняяРасстановки по подъёмам и спускам СложнаяКовры на белой плитке СложнаяЗалипающие клавиши СложнаяСамый длинный зеркальный кусок Средняя
загружаем Python…
Вход
street='10011'
Ожидается
4

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