A — 1, B — 2, …, Z — 26. Сообщение записали подряд, без разделителей, поэтому одну строку цифр часто можно прочитать по-разному: например, 126 — это ABF, LF или AZ. Число с ведущим нулём (05) буквой не считается, одиночный 0 — тоже.
Часть цифр стёрлась: на их месте стоит *, и это может быть любая цифра от 1 до 9 (но не 0). Разные замены звёздочек дают разные сообщения, и все их прочтения считаются.
По строке code из цифр и звёздочек верните общее число способов прочитать её как текст. Ответ может быть огромным — верните его по модулю 10⁹ + 7.code="3*" → 9
* превращается в любую цифру от 1 до 9. Каждый вариант читается по одной цифре (9 способов), а двузначные 31…39 буквами не бывают — они больше 26. Итого 9.
code="*0" → 2
Ноль сам по себе не буква, поэтому он обязан идти в паре: подходят только 10 и 20. Ответ 2.
code="12" → 2
1 2 — это AB, а 12 — это L. Два прочтения.
*code="3*"
9
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 160 тестов на сервере, включая скрытые.