Оки ищет в книгах своё любимое слово и радуется каждый раз, когда находит. Текст до первого появления этого слова и после последнего он красит чёрным. Само слово он не красит. Даны фрагмент текста и любимое слово Локи. Выведи всё, что Локи не закрасил.
Ответ нейросети
21 марта 2026 06:33
Спасибо. Чтобы точно выполнить задание, мне нужен сам фрагмент текста и любимое слово Локи. Пришлите, пожалуйста, текст и слово. Я затем выведу часть текста, которую Локи не закрасил, согласно правилам.
Пока что объясню подробно алгоритм решения и дам готовый код, чтобы можно было проверить на любом входном примере.
Как понять задачу
- Локи закрашивает цветом весь текст до первого появления слова и после последнего появления слова.
- Само слово он не закрашивает.
- Значит не закрашенной останется та часть текста, которая лежит между началом первого появления слова и концом последнего появления слова (включительно самого слова).
Шаги решения (пошагово)
- Найти первое вхождение слова в тексте. Обозначим его начало как start_first.
- Если слова нет вообще, то вся строка не закрашена, ответ — весь текст.
- Найти последнее вхождение слова в тексте. Обозначим его начало как start_last.
- Определить конец последнего вхождения как end_last = start_last + len(word) - 1.
- Но удобнее работать с срезами Python: возьмём конец как индекс после последнего слова end_exclusive = start_last + len(word).
- Ответом будет подстрока от start_first до end_exclusive (включительно не нужен, т.к. конец — это граница после последнего слова).
- В Python это: result = text[start_first:end_exclusive]
- Вариант с чувствительностью к регистру:
- По умолчанию считаем точное совпадение (регистры должны совпадать). Если нужен регистр-нечувствительный вариант, можно привести к нижнему регистру и искать там.
- Вариант со строгим поиском целого слова (через границы слов) — если нужно считать слово именно целым словом, а не частью другого слова — можно использовать регулярное выражение r"\bword\b" или аналог в нужном языке.
Пример
- Текст: "abc def gh def ijk"
- Слово: "def"
- Первое вхождение начинается на позиции 4, последнее — на позиции 8, длина слова 3, end_exclusive = 11.
- Результат: текст[4:11] = "def gh def"
Готовый минимальный код на Python
Вариант 1 (обычный поиск по подстроке, чувствителен к регистру): def not_colored_part(text, word): first = text.find(word) if first == -1: return text # слова нет — вся строка не закрашена last = text.rfind(word) end_exclusive = last + len(word) return text[first:end_exclusive]
Вариант 2 (чувствительность к регистру не нужна, поиск по слову без учёта регистра): def not_colored_part_case_insensitive(text, word): lower_text = text.lower() lower_word = word.lower() first = lower_text.find(lower_word) if first == -1: return text last = lower_text.rfind(lower_word) end_exclusive = last + len(lower_word) return text[first:end_exclusive]
Вариант 3 (если нужно считать только целые слова, а не подстроки внутри слов, можно использовать regex): import re def not_colored_part_whole_words(text, word): pattern = re.compile(r'\b' + re.escape(word) + r'\b') matches = list(pattern.finditer(text)) if not matches: return text first_start = matches[0].start() last_end = matches[-1].end() return text[first_start:last_end]
Что мне нужно от вас
- Пришлите фрагмент текста и само любимое слово Локи.
- Если нужно учитывать регистр или считать слова строго целыми (через границы слов), скажите, и я подстрою решение под это требование.
Готов приступить сразу после того как вы пришлёте текст и слово.
Понравился ответ?
Задай свой вопрос
Напиши любую задачу или вопрос, а нейросеть её решит



