Menu
CoddyTech

Alien Dictionary

Un elenco di parole è ordinato secondo un alfabeto che non conosci: le 26 lettere minuscole inglesi in un ordine segreto. Le parole si confrontano come al solito. Decide la prima posizione in cui due parole differiscono e, quando una parola è l'inizio dell'altra, viene prima quella più corta.

Restituisci le lettere presenti nelle parole, come un'unica stringa nell'ordine dell'alfabeto. Quando sono possibili più ordini, restituisci quello che viene prima nel normale ordine alfabetico. Quando nessun ordine è possibile, restituisci "invalid".

Funzione

alienOrder(words: string-array) → string
wordsstring-array
le parole, ordinate secondo l'alfabeto sconosciuto
Restituiscestring
le lettere nell’ordine più piccolo che si adatta, oppure "invalid"

Vincoli

  • 1 ≤ words.length ≤ 5000
  • 1 ≤ words[i].length ≤ 10
  • Ogni parola contiene solo lettere inglesi minuscole.
  • La stessa parola può comparire più di una volta.

Esempi

Input
words = ["tea", "ten", "ate", "act", "cat"]
Output
"etacn"
Spiegazione
tea prima di ten colloca a prima di n. Le altre coppie indicano t prima di a, t prima di c e a prima di c. Nessuna regola menziona e, quindi l’ordine più piccolo inizia con essa: e, t, a, c, n.
challenge icon

Per approfondire

Come faresti a capire se l’ordine di adattamento è l’unico?

Ripristina il codice
def alienOrder(words):
    # Scrivi il codice qui

Test #1

Test #2

Test #3

Argomento

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

Output atteso

"etacn"