Ctrl K

Список без запятых

Сложная
Кто-то записал подряд несколько положительных целых чисел, забыв поставить между ними запятые, и получилась строка digits. Известно, что числа шли в неубывающем порядке (каждое не меньше предыдущего) и ни одно из них не начиналось с нуля. Посчитайте, сколько разных списков чисел могли дать такую строку. Список из одного числа тоже считается. Ответ может быть большим — верните его по модулю 10⁹ + 7.
Пример 1
digits="1210" → 3

Подходят три прочтения: «1210», «1, 210» и «1, 2, 10». А «12, 10» не годится: 12 больше 10.

Пример 2
digits="5402" → 2

«5402» и «5, 402» подходят. «54, 02» нельзя из-за ведущего нуля, «540, 2» нарушает неубывание.

Пример 3
digits="07" → 0

Любое прочтение начинается с числа с ведущим нулём, так что вариантов нет.

Ограничения
  • 1 ≤ len(digits) ≤ 3500
  • digits состоит из цифр от 0 до 9
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамая дешёвая сборка строки СложнаяСамый длинный повтор СредняяШаблон с точкой и звёздочкой СложнаяСамый длинный сбалансированный отрезок скобок СложнаяПодходит ли строка под шаблон Сложная
загружаем Python…
Вход
digits="1210"
Ожидается
3

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