Давайте разберем задачу пошагово.
Что нужно сделать:
Нам даны текст и слово, которое Локи ищет в тексте.
Все части текста:
- до первого появления этого слова
- после последнего появления этого слова
— окрашены в черный цвет (то есть, мы их не выводим).
Само слово и всё, что между первым и последним появлением слова — не окрашены.
Нужно вывести именно ту часть текста, которая идет между первым и последним появлением этого слова.
Пошаговое решение:
Разделить текст на слова:
Можно разбить входной текст по пробелам, чтобы легче искать слово.Найти все позиции появления слова:
Пройти по списку слов и записать индексы, где встречается любимое слово.Определить границы:
- Первый индекс появления —
first_index - Последний индекс появления —
last_index
- Первый индекс появления —
Вывести все слова между ними (не включая границы):
Текста, соответствующего этим словам, и есть искомая часть — не окрашена, значит, её нужно вывести.
Реализация на Python:
# Ввод данных
text = input()
favorite_word = input()
# Разбиваем текст на слова
words = text.split()
# Находим все позиции появления слова
positions = [i for i, w in enumerate(words) if w == favorite_word]
# Если слово встречается менее двух раз, то никаких "некрашеных" частей между появлениями нет
if len(positions) < 2:
print('')
else:
first_index = positions[0]
last_index = positions[-1]
# Вытаскиваем слова между первым и последним появлением (не включая их самих)
middle_words = words[first_index + 1:last_index]
# Выводим полученную часть текста
print(' '.join(middle_words))
Пример:
Ввод:
Идет динозаврик: топ-топ-топ!
топ
Шаги:
- Разбить текст на слова: ["Идет", "динозаврик:", "топ-топ-топ!"]
- Ищем слово "топ" — оно отсутствует полностью (в варианте, приведенном, слово "топ" есть в тексте, только частично, так что предположим, что вход был бы чуть другой).
- В данном случае, поскольку слово "топ" - в конце, и в первом слове его нет, то результат — пустая строка.
Если есть еще вопросы или нужна помощь с другим примером — скажите!