Menu
CoddyTech

Alien Dictionary

Una lista de palabras está ordenada según un alfabeto que no conoces: las 26 letras minúsculas del inglés en cierto orden secreto. Las palabras se comparan de la manera habitual. La primera posición en la que dos palabras difieren determina cuál de las dos letras aparece primero en el alfabeto; y cuando una palabra es el comienzo de la otra, la palabra más corta aparece primero.

Devuelve las letras que aparecen en las palabras, como una sola cadena en orden alfabético. Si varios órdenes son compatibles con la lista, devuelve el que aparece primero en el orden lexicográfico habitual. Si ningún orden es compatible, devuelve "invalid".

Función

alienOrder(words: string-array) → string
wordsstring-array
las palabras, ordenadas según el alfabeto desconocido
Devuelvestring
las letras en el orden más pequeño que encaje, o «invalid»

Restricciones

  • 1 ≤ words.length ≤ 5000
  • 1 ≤ words[i].length ≤ 10
  • Cada palabra contiene únicamente letras minúsculas del inglés.
  • La misma palabra puede aparecer más de una vez.

Ejemplos

Entrada
words = ["tea", "ten", "ate", "act", "cat"]
Salida
"etacn"
Explicación
tea y ten difieren por primera vez en a y n, así que a va antes que n. Los otros pares indican que t va antes que a, t antes que c y a antes que c. Ninguna regla menciona e, así que el orden más pequeño la pone primero, después t, después a y luego c y n, que para entonces están libres, con c primero.

lock icon+20 pruebas ocultas al enviar

challenge icon

Para ir más allá

¿Cómo determinarías si el orden de ajuste es el único?

Restablecer código
def alienOrder(words):
    # Escribe el código aquí
Casos de prueba

Caso 1

Caso 2

Caso 3

Entrada

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

Esperado

"etacn"