Выделите буквенные слова, стабильно отсортируйте по убыванию длины и возьмите первые три. Затем приведите к нижнему регистру и добавьте #.
Получить три самых длинных слова из заголовка и оформить их как хештеги
Выделите буквенные слова, стабильно отсортируйте по убыванию длины и возьмите первые три. Затем приведите к нижнему регистру и добавьте #.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Дано: строка‑заголовок статьи. Нужно выбрать из неё три слова максимальной длины (цифры игнорировать) и превратить каждое в хештег, добавив символ "#" в начало. Реализуйте функцию, которая возвращает массив таких хештегов, упорядоченных по убыванию длины исходных слов. Все хештеги должны быть в нижнем регистре.
Примеры Ввод: "Visualizing Science" Вывод: ["#visualizing", "#science"]
Ввод: "How the Avocado Became the Fruit of the Global Trade" Вывод: ["#avocado", "#became", "#global"]
Ответ
Выделите буквенные слова, стабильно отсортируйте по убыванию длины и возьмите первые три. Затем приведите к нижнему регистру и добавьте #.
import re
def hashtags(title):
words = re.findall(r'[^\W\d_]+', title, flags=re.UNICODE)
longest = sorted(words, key=len, reverse=True)[:3]
return ['#' + word.lower() for word in longest]
Стабильная сортировка сохраняет порядок исходного заголовка для слов одинаковой длины, как во втором примере с became и global. Если слов меньше трёх, вернутся все найденные.
Здесь цифры и пунктуация разделяют слова, повторы сохраняются. Например, abc123def превращается в два слова, а не в abcdef. Если нужны уникальные хештеги или другая обработка смешанных токенов, это следует оговорить отдельно.