Menu
CoddyTech

Alien Dictionary

Список слов отсортирован в алфавите, порядок букв которого вам неизвестен: это 26 строчных английских букв в некотором секретном порядке. Слова сравниваются обычным образом. Порядок определяет первая позиция, в которой два слова различаются: первым идёт слово, буква которого раньше в алфавите. Если одно слово является началом другого, первым идёт более короткое слово.

Верните буквы, встречающиеся в словах, одной строкой в алфавитном порядке. Если списку соответствуют несколько порядков, верните тот, который идёт первым в обычном словарном порядке. Если ни один порядок не подходит, верните "invalid".

Функция

alienOrder(words: string-array) → string
wordsstring-array
слова, отсортированные в неизвестном алфавите
Возвращаетstring
буквы в наименьшем подходящем порядке или «недопустимо»

Ограничения

  • 1 ≤ words.length ≤ 5000
  • 1 ≤ words[i].length ≤ 10
  • Каждое слово содержит только строчные буквы английского алфавита.
  • То же слово может встречаться несколько раз. ТРЕБУЕМЫЙ ФОРМАТ ВЫВОДА: [Ваш переведённый текст здесь]

Примеры

Ввод
words = ["tea", "ten", "ate", "act", "cat"]
Вывод
"etacn"
Пояснение
tea и ten впервые различаются на буквах a и n, поэтому a стоит перед n. В остальных парах получается, что t стоит перед a, t — перед c, а a — перед c. Ни одно правило не упоминает e, поэтому в наименьшем порядке она стоит первой, затем идут t, затем a, а после них c и n, которые к тому моменту оба свободны; первой из них идёт c.

lock icon+20 скрытых тестов при отправке

challenge icon

Дополнительный вопрос

Как определить, является ли порядок подгонки единственным?

Сбросить код
def alienOrder(words):
    # Напишите код здесь
Тестовые случаи

Случай 1

Случай 2

Случай 3

Ввод

words = ["tea", "ten", "ate", "act", "cat"]

Ожидается

"etacn"