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 nel modo consueto. La prima posizione in cui due parole differiscono determina quale delle due lettere viene prima nell’alfabeto; quando una parola è l’inizio dell’altra, viene prima quella più corta.

Restituisci le lettere che compaiono nelle parole, come un’unica stringa nell’ordine dell’alfabeto. Se più ordini sono compatibili con l’elenco, restituisci quello che viene prima nel normale ordine lessicografico. Se nessun ordine è compatibile, restituisci "invalid".

Funzione

alienOrder(words: string-array) → string
wordsstring-array
le parole, ordinate nell'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 minuscole inglesi.
  • La stessa parola può comparire più di una volta.

Esempi

Input
words = ["tea", "ten", "ate", "act", "cat"]
Output
"etacn"
Spiegazione
tea e ten differiscono per la prima volta in a e n, quindi a viene prima di n. Le altre coppie danno t prima di a, t prima di c e a prima di c. Nessuna regola menziona e, quindi l’ordine più piccolo la mette per prima, poi t, poi a, quindi c e n, che a quel punto sono entrambe libere, con c per prima.

lock icon+20 test nascosti all’invio

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
Casi di test

Caso 1

Caso 2

Caso 3

Input

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

Atteso

"etacn"