Ctrl K

Сколькими способами вычеркнуть

Сложная
Даны строки source и pattern. Из source можно вычеркнуть любые символы так, чтобы оставшиеся (в исходном порядке) образовали ровно pattern. Посчитайте, сколькими способами это можно сделать. Два способа различаются, если отличается набор позиций source, которые остались невычеркнутыми. Гарантируется, что ответ помещается в 32-битное знаковое целое.
Пример 1
source="bananas", pattern="ans" → 3

Букву a можно взять с позиции 1 или 3 (тогда n — с позиции 2 или 4 правее неё), а s — только последняя: подходят пары (1,2), (1,4), (3,4) — 3 способа.

Пример 2
source="aaaa", pattern="aa" → 6

Любые две из четырёх букв: 4·3/2 = 6 способов.

Пример 3
source="abc", pattern="cab" → 0
Ограничения
  • 1 ≤ len(source), len(pattern) ≤ 1000
  • Строки состоят из латинских букв (строчных и заглавных)
  • Ответ не превышает 2³¹ − 1
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиШаблон с точкой и звёздочкой СложнаяСамый длинный сбалансированный отрезок скобок СложнаяПодходит ли строка под шаблон СложнаяПеретасовка разрезами СложнаяМеньше всего разрезов Сложная
загружаем Python…
Вход
source="bananas", pattern="ans"
Ожидается
3

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