Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3243244
А
Аноним
21 мая 2025 10:35 · публичный вопрос
А
Аноним

Локи ищет в книгах своё любимое слово и радуется каждый раз, когда находит. Текст до первого появления этого слова и после последнего он красит чёрным. Само слово он не красит.…

Запрос пользователя

Локи ищет в книгах своё любимое слово и радуется каждый раз, когда находит. Текст до первого появления этого слова и после последнего он красит чёрным. Само слово он не красит. Даны фрагмент текста и любимое слово Локи. Выведи всё, что Локи не закрасил. Ввод Вывод Идет динозаврик: топ-топ-топ! топ топ-топ-топ

Ответ нейросети
21 мая 2025 10:35

Давайте разберем задачу пошагово.

Что нужно сделать:
Нам даны текст и слово, которое Локи ищет в тексте.
Все части текста:

  • до первого появления этого слова
  • после последнего появления этого слова
    — окрашены в черный цвет (то есть, мы их не выводим).
    Само слово и всё, что между первым и последним появлением слова — не окрашены.
    Нужно вывести именно ту часть текста, которая идет между первым и последним появлением этого слова.

Пошаговое решение:

  1. Разделить текст на слова:
    Можно разбить входной текст по пробелам, чтобы легче искать слово.

  2. Найти все позиции появления слова:
    Пройти по списку слов и записать индексы, где встречается любимое слово.

  3. Определить границы:

    • Первый индекс появления — first_index
    • Последний индекс появления — last_index
  4. Вывести все слова между ними (не включая границы):
    Текста, соответствующего этим словам, и есть искомая часть — не окрашена, значит, её нужно вывести.


Реализация на 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))

Пример:

Ввод:

Идет динозаврик: топ-топ-топ!
топ

Шаги:

  • Разбить текст на слова: ["Идет", "динозаврик:", "топ-топ-топ!"]
  • Ищем слово "топ" — оно отсутствует полностью (в варианте, приведенном, слово "топ" есть в тексте, только частично, так что предположим, что вход был бы чуть другой).
  • В данном случае, поскольку слово "топ" - в конце, и в первом слове его нет, то результат — пустая строка.

Если есть еще вопросы или нужна помощь с другим примером — скажите!