Ctrl K

Три части с равным числом единиц

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

В строке три единицы, в каждой части должна быть ровно одна. Первый разрез можно сделать после позиции 0 или 1, второй — после позиции 2, 3 или 4: 2 · 3 = 6 способов.

Пример 2
bits='00000' → 6

Единиц нет, так что подходит любой разрез на три непустые части: два разреза из четырёх промежутков, C(4, 2) = 6.

Пример 3
bits='1101' → 2

Подходят «1|1|01» и «1|10|1».

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

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