Ctrl K

Подсветить найденное

Средняя
Поисковик подсвечивает в сниппете все места, где встретились слова запроса. Даны строка text и список ключевых слов keywords. Каждое вхождение любого ключевого слова в text (вхождения могут перекрываться) надо обернуть тегами <b> и </b>. Чтобы разметка была чистой, выделенные куски, которые перекрываются или идут вплотную друг за другом, объединяются под одну пару тегов. Верните строку text с расставленными тегами. Регистр букв важен.
Пример 1
text='redcarandbluecar', keywords=['car', 'blue'] → 'red<b>car</b>and<b>bluecar</b>'

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

Пример 2
text='aaaba', keywords=['aa', 'ab'] → '<b>aaab</b>a'

aa встречается на позициях 0 и 1 (вхождения перекрываются), ab — на позиции 2. Вместе они покрывают символы 0–3 сплошным куском; последняя a не выделена.

Пример 3
text='Report2024', keywords=['report', '2025'] → 'Report2024'

Регистр важен, а 2025 в тексте нет — выделять нечего.

Ограничения
  • 1 ≤ len(text) ≤ 1000
  • 0 ≤ len(keywords) ≤ 100
  • 1 ≤ len(keywords[i]) ≤ 1000
  • text и keywords[i] состоят из латинских букв и цифр
  • Все ключевые слова различны
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПодсветка найденных слов СредняяРазбиение на слова из словаря СредняяСократить слова до корней СредняяСамые частые запросы СредняяСлово, выращенное по букве Средняя
загружаем Python…
Вход
text='redcarandbluecar', keywords=['car', 'blue']
Ожидается
'red<b>car</b>and<b>bluecar</b>'

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 110 тестов на сервере, включая скрытые.