Ctrl K

Уникальный кусок каждого слова

Средняя
Дан список непустых строк labels. Для каждой строки labels[i] найдите её самую короткую подстроку (непрерывный кусок), которая **не встречается** ни в одной другой строке списка. Если таких подстрок минимальной длины несколько, возьмите лексикографически наименьшую. Если подходящей подстроки нет вовсе, ответ для этой строки — пустая строка. Верните список ответов той же длины, что labels, в том же порядке.
Пример 1
labels=["milk", "silk", "mint"] → ['mil', 's', 'n']

Каждая буква "milk" встречается в других словах, как и куски "mi", "il", "lk"; самый короткий собственный кусок — "mil". У "silk" есть своя буква "s". У "mint" свои буквы "n" и "t", берём "n".

Пример 2
labels=["ab", "abc"] → ['', 'c']

Всё, что есть в "ab", есть и в "abc" — ответ пустая строка. У "abc" уникальна буква "c".

Пример 3
labels=["aa", "aa"] → ['', '']

Строки одинаковые, ни у одной нет своего куска.

Ограничения
  • 2 ≤ len(labels) ≤ 100
  • 1 ≤ len(labels[i]) ≤ 20
  • Строки состоят только из строчных латинских букв
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиРазбиение на слова из словаря СредняяПодсветить найденное СредняяСократить слова до корней СредняяСамые частые запросы СредняяСлово, выращенное по букве Средняя
загружаем Python…
Вход
labels=["milk", "silk", "mint"]
Ожидается
['mil', 's', 'n']

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