Menu
CoddyTech

Alien Dictionary

Une liste de mots est triée selon un alphabet que vous ne connaissez pas : les 26 lettres minuscules de l’anglais, dans un ordre secret. Les mots se comparent comme d’habitude. La première position où deux mots diffèrent détermine l’ordre et, lorsque l’un des mots est le début de l’autre, le mot le plus court vient en premier.

Renvoyez les lettres qui apparaissent dans les mots, sous la forme d’une seule chaîne dans l’ordre alphabétique. Lorsque plusieurs ordres conviennent, 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 l’ordre le plus petit 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 avant ten place a avant n. Les autres paires donnent t avant a, t avant c et a avant c. Aucune règle ne mentionne e, donc le plus petit ordre commence par lui : e, t, a, c, n.
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

Test #1

Test #2

Test #3

Argument

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

Résultat attendu

"etacn"