Вот пример программы, которая решает данную задачу:
n = int(input("Введите количество строк: ")
strings = []
for i in range:
strings.append(input("Введите строку " + str(i+1) + ": ".lower()) # принимаем строки в нижнем регистре
k = int(input("Введите количество поисковых запросов: ")
queries = []
for i in range(k):
queries.append(input("Введите запрос " + str(i+1) + ": ".lower()) # принимаем запросы в нижнем регистре
for s in strings:
contains_all = True # флаг, обозначающий, что строка содержит все запросы
for q in queries:
if q not in s:
contains_all = False # если запрос не найден в строке, сбрасываем флаг
break
if contains_all:
print(s) # если строка содержит все запросы, выводим ее
Программа запрашивает у пользователя количество строк `n` и сами строки, которые сохраняются в список `strings`. Затем программа запрашивает количество поисковых запросов `k` и сами запросы, которые сохраняются в список `queries`.
Далее программа проходит по каждой строке в списке `strings` и проверяет, содержит ли эта строка все запросы из списка `queries`. Если все запросы содержатся в строке, программа выводит эту строку на экран.
Обратите внимание, что для регистронезависимого поиска мы используем метод строк `lower()`, который переводит все символы строки в нижний регистр.
n = int(input())
fragments = []
for i in range:
fragments.append(input().lower())
k = int(input())
queries = []
for i in range(k):
queries.append(input().lower())
for fragment in fragments:
contains_all = True
for query in queries:
if query not in fragment:
contains_all = False
break
if contains_all:
print(fragment)