Menu
CoddyTech

Alien Dictionary

Une liste de mots est triée selon un alphabet que vous ne connaissez pas : les 26 lettres minuscules anglaises dans un ordre secret. Les mots se comparent de la manière habituelle. La première position où deux mots diffèrent détermine lequel vient en premier dans l’alphabet, selon l’ordre de leurs deux lettres à cette position ; si un mot est le début d’un autre, le mot le plus court vient en premier.

Renvoyez les lettres qui apparaissent dans les mots, sous la forme d’une chaîne unique dans l’ordre de l’alphabet. Lorsque plusieurs ordres conviennent à la liste, renvoyez celui qui vient en premier dans l’ordre lexicographique habituel. Lorsqu’aucun ordre ne convient, renvoyez "invalid".

Fonction

alienOrder(words: string-array) → string
wordsstring-array
les mots, triés dans l’alphabet inconnu
Renvoiestring
les lettres dans le plus petit ordre qui convient, ou "invalid"

Contraintes

  • 1 ≤ words.length ≤ 5000
  • 1 ≤ words[i].length ≤ 10
  • Chaque mot ne contient que des lettres minuscules de l’alphabet anglais.
  • Le même mot peut apparaître plusieurs fois.

Exemples

Entrée
words = ["tea", "ten", "ate", "act", "cat"]
Sortie
"etacn"
Explication
tea et ten diffèrent d’abord à a et n, donc a vient avant n. Les autres paires indiquent que t vient avant a, t avant c et a avant c. Aucune règle ne mentionne e, donc l’ordre le plus petit le place en premier, puis t, puis a, puis c et n, qui sont tous deux libres à ce moment-là, avec c en premier.

lock icon+20 tests cachés à la soumission

challenge icon

Pour aller plus loin

Comment déterminer si l’ordre d’ajustement est le seul possible ?

Réinitialiser le code
def alienOrder(words):
    # Écrivez le code ici
Cas de test

Cas 1

Cas 2

Cas 3

Entrée

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

Attendu

"etacn"