Предмет: Информатика, автор: shmelfootball17

Дана строка-шаблон t и n символьных строк si (|si
| = |t|). Для каждого k от 0 до |t| выведите
ответ на вопрос:
• если мы заменим не более k символов в строке-шаблоне t на «?», чему будет равно количество
строк si
, подходящих под этот шаблон?
Строка si подходит под шаблон t, если на всех позициях, где в t стоит буква, такая же буква
стоит в si
. На позициях, где в t стоит «?», в si может стоять любая буква.
Формат входных данных
В первой строке ввода содержится символьная строка t (1 6 |t| 6 16), состоящая из строчных
букв латинского алфавита и символов «?».
Во второй строке содержится одно целое число n (1 6 n 6 2 · 105
) — количество строк si
.
В следующих n строках ввода содержатся символьные строки si (|si
| = |t|), состоящие из строчных букв латинского алфавита.
Формат выходных данных
В единственной строке выведите |t| + 1 число — ответ для всех k (0 6 k 6 |t|).

Ответы

Автор ответа: ilyav1nokurov
0

Дана строка-шаблон t и n символьных строк si (|si

| = |t|). Для каждого k от 0 до |t| выведите

ответ на вопрос:

• если мы заменим не более k символов в строке-шаблоне t на «?», чему будет равно количество

строк si

, подходящих под этот шаблон?

Строка si подходит под шаблон t, если на всех позициях, где в t стоит буква, такая же буква

стоит в si

. На позициях, где в t стоит «?», в si может стоять любая буква.

Формат входных данных

В первой строке ввода содержится символьная строка t (1 6 |t| 6 16), состоящая из строчных

букв латинского алфавита и символов «?».

Во второй строке содержится одно целое число n (1 6 n 6 2 · 105

) — количество строк si

.

В следующих n строках ввода содержатся символьные строки si (|si

| = |t|), состоящие из строчных букв латинского алфавита.

Формат выходных данных

В единственной строке выведите |t| + 1 число — ответ для всех k (0 6 k 6 |t|).

t = input()

n = int(input())

dp = [[[0 for _ in range(26)] for _ in range(26)] for _ in range(len(t) + 1)]

for j in range(26):

   dp[0][j][j] = n

for k in range(1, len(t) + 1):

   for i in range(1, k + 1):

       for j in range(26):

           if t[k - 1] != '?' and ord(t[k - 1]) != ord('a') + j:

               continue

           for l in range(26):

               dp[k][j][l] += dp[k - 1][j][l]

           if t[k - 1] == '?':

               for j2 in range(26):

                   dp[k][j][j2] += dp[k - 1][j2][l]

ans = []

for i in range(len(t) + 1):

   cnt = 0

   for j in range(26):

       for l in range(26):

           cnt += dp[len(t)][j][l] if i >= len(t) or t[i] == '?' or j == ord(t[i]) - ord('a') else 0

   ans.append(cnt)

print(*ans)

Похожие вопросы
Предмет: Английский язык, автор: rutaplaza43
Предмет: Русский язык, автор: olegn6262
Тест по теме: «Частица» 1.Найдите неправильное утверждение А) Частицы являются служебными словами. Б) Некоторые частицы служат для образования наклонений глаголов. В) Частицы изменяются. 2.Укажите предложение с формообразующей частицей. А) Неужели в самом деле все сгорели карусели? Б) Вряд ли эта новость понравится коллегам. В) Да здравствуют музы, да здравствует разум! 3.Укажите предложение, в котором частица пишется через дефис. А) Всё те(же) мы, но время уже не то. Б) На безлюдной барже не слишком(то) уютно. В) Всё вроде(бы) отлично и здорово. 4.Укажите предложение, в котором пишется частица НЕ. А) Весь вечер старик был н.. в духе. Б) Когда бы я н.. шёл, они всегда тут лазали. В) Во что бы то н.. стало надо перейти эту дорогу. 5. В каком ряду во всех словосочетаниях частица НЕ пишется раздельно. А) (н..)свет (н..)заря, (н..)рыба (н..)мясо Б) на небе (н..)облачка, (н..)кого спросить В) (н..)мог (н..)подумать, (н..)у кого поинтересоваться 6. В каких случаях в данном предложении пишется частица НИ? Мы зашагали, скользя и спотыкаясь, по скрытым снегом (1)н..ровностям, (2)н..чего (3)н.. видя (4)н.. под ногами, (5) н.. впереди. А) 2,4,5 Б) 1,3,4 В)1,2,3 7.Укажите предложение, в котором частица пишется через дефис. А) Знал(бы) ты, как красив был закат! Б) Ну(ж) был денёк! В) Скажи(ка), дядя, ведь недаром Москва, спалённая пожаром, французу отдана? 8. Укажите предложение, в котором пишется частица НЕ. А) Я увидел н..большое, а миниатюрное строение. Б) На небе н.. облачка. В) Он стоял н.. жив, н.. мёртв. 9.В каком ряду во всех словосочетаниях частица НИ пишется раздельно? А) (ни)кто не обратил внимания , (ни)когда не жалел Б) (ни)в чём не обвинял, (ни)как не возьму в толк В) (ни)ответа (ни)привета 10.В каких случаях в данном предложении пишется частица НИ? Рисовать Егор (1)н.. умел и (2)н.. разу в жизни (3)н.. видел (4)н.. одной картины. А) 1,2,4 Б)1,3 В) 2, 4. даю 30 б