Ctrl K

Слово, выращенное по букве

Средняя
Дан словарь vocabulary — массив слов. Слово можно *вырастить*, если его можно получить, начиная с однобуквенного слова и каждый раз дописывая одну букву в конец, причём каждое промежуточное слово тоже есть в словаре. Иначе говоря, в словаре должны быть все непустые начала этого слова. Верните самое длинное слово из словаря, которое можно вырастить. Если таких слов одинаковой максимальной длины несколько, верните наименьшее в алфавитном порядке. Если вырастить нельзя ни одно слово, верните пустую строку.
Пример 1
vocabulary=['s', 'st', 'sta', 'star', 'start', 'stars', 'tar'] → 'stars'

И start, и stars собираются по букве: s → st → sta → star → … Обе длины 5, а в алфавитном порядке раньше идёт stars.

Пример 2
vocabulary=['ox', 'oxen', 'b'] → 'b'

Однобуквенного o нет, поэтому ox и oxen не собрать. Остаётся b.

Пример 3
vocabulary=['go', 'gone'] → ''

Ни одно слово не собирается с первой буквы, ответ — пустая строка.

Ограничения
  • 1 ≤ len(vocabulary) ≤ 1000
  • 1 ≤ len(vocabulary[i]) ≤ 30
  • Слова состоят только из строчных латинских букв
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамые частые запросы СредняяСлова, спрятанные в тексте СредняяРазложить анаграммы по группам СредняяРазбиение на слова из словаря СредняяПодпоследовательность только одного слова Средняя
загружаем Python…
Вход
vocabulary=['s', 'st', 'sta', 'star', 'start', 'stars', 'tar']
Ожидается
'stars'

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