Menu
CoddyTech

Alien Dictionary

Lista słów jest posortowana w alfabecie, którego nie znasz: 26 małych liter angielskich w pewnej tajnej kolejności. Słowa porównuje się w zwykły sposób. O pierwszeństwie decyduje pierwsza pozycja, na której dwa słowa się różnią: to, która z dwóch liter występuje wcześniej w alfabecie. Jeśli jedno słowo jest początkiem drugiego, pierwsze występuje krótsze słowo.

Zwróć litery występujące w słowach jako jeden ciąg znaków uporządkowany alfabetycznie. Jeśli do listy pasuje kilka kolejności, zwróć tę, która jest pierwsza w zwykłym porządku słownikowym. Jeśli nie pasuje żadna kolejność, zwróć "invalid".

Funkcja

alienOrder(words: string-array) → string
wordsstring-array
słowa, posortowane w nieznanym alfabecie
Zwracastring
litery w najmniejszej pasującej kolejności albo „nieprawidłowe”

Ograniczenia

  • 1 ≤ words.length ≤ 5000
  • 1 ≤ words[i].length ≤ 10
  • Każde słowo zawiera wyłącznie małe litery angielskiego alfabetu.
  • To samo słowo może pojawić się więcej niż raz.

Przykłady

Wejście
words = ["tea", "ten", "ate", "act", "cat"]
Wyjście
"etacn"
Wyjaśnienie
tea i ten różnią się po raz pierwszy na literach a i n, więc a występuje przed n. Pozostałe pary wskazują, że t występuje przed a, t przed c, a a przed c. Żadna reguła nie wspomina o e, więc najmniejszy porządek umieszcza je na początku, następnie t, potem a, a na końcu c i n, które do tego momentu nie są już ograniczone żadną regułą, przy czym c występuje jako pierwsze.

lock icon+20 ukrytych testów przy wysłaniu

challenge icon

Pytanie dodatkowe

Jak sprawdzić, czy kolejność dopasowania jest jedyną możliwą?

Zresetuj kod
def alienOrder(words):
    # Wpisz kod tutaj
Przypadki testowe

Przypadek 1

Przypadek 2

Przypadek 3

Wejście

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

Oczekiwane

"etacn"