Ctrl K

Порядок букв по словарю

Сложная
Археологи нашли словарь забытого языка. Он записан строчными латинскими буквами, но алфавит у языка свой: порядок букв неизвестен. Слова в словаре entries отсортированы по правилам этого языка. Слова сравниваются как обычно: по первой позиции, где они расходятся, а если одно слово — начало другого, то короткое идёт раньше. Верните строку из всех букв, встречающихся в словаре, по одному разу в порядке алфавита этого языка. Если ни при каком порядке букв словарь не может быть отсортирован, верните пустую строку "". Гарантируется, что если подходящий порядок существует, то он единственный.
Пример 1
entries=['kot', 'kit', 'ti', 'tk'] → 'oikt'

Из пар соседних слов: kot < kit даёт o раньше i, kit < ti — k раньше t, ti < tk — i раньше k. Вместе получается единственный порядок o, i, k, t.

Пример 2
entries=['ba', 'ab', 'ba'] → ''

Первая пара требует, чтобы b шла раньше a, вторая — наоборот. Такого алфавита не бывает.

Пример 3
entries=['moon', 'mo'] → ''

Слово mo — начало слова moon, поэтому при любом порядке букв оно должно стоять раньше.

Ограничения
  • 1 ≤ len(entries) ≤ 100
  • 1 ≤ len(entries[i]) ≤ 100
  • entries[i] состоит из строчных латинских букв
  • Если подходящий порядок букв есть, он единственный
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиРаскрыть шаблон с переменными СредняяСамый длинный подъём по карте СложнаяШарик и лунка СложнаяПуть в дереве без одинаковых соседей СложнаяПрогулки только в гору Сложная
загружаем Python…
Вход
entries=['kot', 'kit', 'ti', 'tk']
Ожидается
'oikt'

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