Ctrl K

Мало нулей или мало единиц

Лёгкая
Дана строка bits из символов 0 и 1 и число cap. Назовём подстроку перекошенной, если в ней не больше cap нулей **или** не больше cap единиц (подходит любое из двух условий). Верните количество перекошенных подстрок. Подстрока — непрерывный кусок строки; одинаковые по содержимому подстроки на разных позициях считаются отдельно.
Пример 1
bits="0110", cap=1 → 9

Всего у строки 10 подстрок. Не подходит только "0110" целиком: в ней два нуля и две единицы. Ответ 9.

Пример 2
bits="0000", cap=1 → 10

Единиц нет ни в одной подстроке, поэтому подходят все 10.

Пример 3
bits="010101", cap=2 → 20

Подстрока длиной до 5 содержит не больше двух нулей или не больше двух единиц, а вся строка — по три тех и других. Ответ 21 − 1 = 20.

Ограничения
  • 1 ≤ len(bits) ≤ 50
  • 1 ≤ cap ≤ len(bits)
  • Каждый символ bits — 0 или 1
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиОтрезок в обоих регистрах ЛёгкаяТройки без повторов ЛёгкаяОкна из цифр, которые делят число ЛёгкаяПерекрасить в тёмную полосу ЛёгкаяКаждая буква не больше двух раз Лёгкая
загружаем Python…
Вход
bits="0110", cap=1
Ожидается
9

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