Ctrl K

Разрезы по одной единице

Средняя
Дан массив bits из нулей и единиц. Его нужно разрезать на непустые непрерывные куски так, чтобы в каждом куске была **ровно одна** единица. Верните число способов это сделать. Если единиц в массиве нет, ответ 0. Ответ может быть большим — верните его по модулю 10⁹ + 7.
Пример 1
bits=[1, 0, 0, 1, 0, 1] → 6

Между первой и второй единицей разрез можно сделать в 3 местах, между второй и третьей — в 2. Всего 3 · 2 = 6 способов.

Пример 2
bits=[0, 0, 1, 0] → 1

Единица одна, поэтому подходит только весь массив целиком — 1 способ.

Пример 3
bits=[0, 0, 0] → 0
Ограничения
  • 1 ≤ len(bits) ≤ 10⁵
  • bits[i] равно 0 или 1
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиN-е число из заданных простых СредняяЦепочка кратных СредняяЛучший сдвиг для взвешенной суммы СредняяДуэль за крайние карты СредняяСамое большое частное Средняя
загружаем Python…
Вход
bits=[1, 0, 0, 1, 0, 1]
Ожидается
6

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