D. Найдётся всё 2.0

Поиск информации — важная часть современной жизни. Создайте программу, которая реализует маленький компонент поисковой системы.

Формат ввода

Вводятся заголовки страниц.
В последней строке записан поисковый запрос.

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

Вывести все заголовки страниц, в которых присутствует поисковый запрос (регистр не имеет значения).
Порядок заголовков должен сохраниться.

Пример

Ввод

Яндекс выпустил задачник по программированию
На соревнованиях по программированию победил любитель питона
Как заказать Яндекс.Такси?!
яндекс

Вывод

Яндекс выпустил задачник по программированию
Как заказать Яндекс.Такси?!

Ввод

сериал шерлок смотреть онлайн
учебник питона
мемы
социальная сеть
упражнения по питону
кормовые мыши для питонов
ответы егэ скачать бесплатно
компьютерные мыши
питон

Вывод

учебник питона
упражнения по питону
кормовые мыши для питонов

Решение

Задача заставляет творчески подойти к вводу данных, поэтому рассмотрим несколько вариантов обработки ввода и вывода.

С точки зрения решения задачи K. Найдётся всё ничего особо не поменялось. Разве что раньше нам говорили сколько строк надо прочитать, а теперь читать нужно столько, сколько дали на вход, и последнюю введенную строку надо интерпретировать как строку поиска.

Все показаные способы сначала читают все строки в список, а потом разными способами делят этот список на то что нужно найти и на то, где нужно найти.

Посмотреть код

Решение

Python
from sys import stdin

lines = stdin.readlines()
subject = lines[-1].strip('\n').lower()
objects = lines[:-1]

for line in objects:
    if line.lower().find(subject) + 1:
        print(line.strip('\n'))

Решение

Python
from sys import stdin

titles = [line.strip("\n") for line in stdin]
search = titles.pop()

titles = [title for title in titles if search.lower() in title.lower()]
print(*titles, sep="\n")

Решение

Python
from sys import stdin

*titles, search = [title.strip("\n") for title in stdin.readlines()]

for title in titles:
    if title.lower().find(search.lower()) + 1:
        print(title)
Подписаться
Уведомить о
guest
2 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
nmalkam
05.12.2023 08:33

if line.lower().find(subject) + 1:

• find(str[, start [, end]): происходит возвращение индекса подстроки в строку в Python. В том случае, если подстрока не найдена, выполняется возвращение числа -1;

если subject найден в line, то find возвращает индекс(например 0), к которому мы добавляем 1, следовательно условие True
я правильно понимаю условие??