Menu
CoddyTech

Alien Dictionary

Uma lista de palavras está ordenada segundo um alfabeto que você não conhece: as 26 letras minúsculas do inglês em alguma ordem secreta. As palavras são comparadas normalmente. A primeira posição em que duas palavras diferem determina a ordem e, quando uma palavra é o início da outra, a palavra mais curta vem primeiro.

Retorne as letras que aparecem nas palavras, em uma única string na ordem do alfabeto. Quando várias ordens forem possíveis, retorne a que vem primeiro na ordem alfabética comum. Quando nenhuma ordem for possível, retorne "invalid".

Função

alienOrder(words: string-array) → string
wordsstring-array
as palavras, ordenadas no alfabeto desconhecido
Retornastring
as letras na menor ordem que se encaixa, ou "invalid"

Restrições

  • 1 ≤ words.length ≤ 5000
  • 1 ≤ words[i].length ≤ 10
  • Cada palavra contém apenas letras minúsculas do alfabeto inglês.
  • A mesma palavra pode aparecer mais de uma vez.

Exemplos

Entrada
words = ["tea", "ten", "ate", "act", "cat"]
Saída
"etacn"
Explicação
tea antes de ten coloca a antes de n. Os outros pares indicam t antes de a, t antes de c e a antes de c. Nenhuma regra menciona e, então a menor ordem começa com ele: e, t, a, c, n.
challenge icon

Para ir além

Como você determinaria se a ordem de ajuste é a única?

Redefinir código
def alienOrder(words):
    # Escreva o código aqui

Teste #1

Teste #2

Teste #3

Argumento

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

Saída Esperada

"etacn"