Ctrl K

Секции по два кресла

Сложная
Длинный зал ожидания описан строкой hall: 'S' — кресло, 'P' — кадка с растением. По краям зала уже стоят две перегородки — слева от первой позиции и справа от последней. Между любыми двумя соседними позициями можно поставить не более одной дополнительной перегородки. Нужно расставить их так, чтобы в каждой получившейся секции было ровно два кресла (растений — сколько угодно). Посчитайте число способов. Способы различаются, если хотя бы в одном месте в одном способе перегородка есть, а в другом нет. Если способов нет, верните 0. Ответ верните по модулю 10⁹ + 7.
Пример 1
hall="SPSPPSS" → 3

Первая секция — "SPS", вторая — "SS". Между ними два растения, поэтому перегородку можно поставить в одно из трёх мест.

Пример 2
hall="PSPSP" → 1

Ровно два кресла — дополнительные перегородки не нужны, способ один.

Пример 3
hall="SSS" → 0

Кресел нечётное число — разбить нельзя.

Ограничения
  • 1 ≤ len(hall) ≤ 10⁵
  • hall[i] — 'S' или 'P'
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЧисла с рабочих клавиш СложнаяПереключить выход схемы СложнаяПроверка контрольной по арифметике СложнаяЧисла с суммой цифр в заданных рамках СложнаяХвост вперёд Сложная
загружаем Python…
Вход
hall="SPSPPSS"
Ожидается
3

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