Menu
CoddyTech

Word Ladder

DifícilGrafosFilapython iconjava iconcpp iconc iconjs icon+10

Você recebe duas palavras, beginWord e endWord, e uma lista de palavras wordList. Uma escada é uma sequência de palavras que começa com beginWord, termina com endWord e altera exatamente uma letra de cada palavra para a próxima. Todas as palavras após beginWord devem vir de wordList.

Retorne o número de palavras na escada mais curta, contando as duas extremidades, ou 0 se não houver escada. Por exemplo, cold, cord, card formam uma escada de 3 palavras. beginWord não precisa estar em wordList, mas endWord precisa.

Função

ladderLength(beginWord: string, endWord: string, wordList: string-array) → integer
beginWordstring
a primeira palavra da escada
endWordstring
a palavra the ladder deve alcançar
wordListstring-array
as palavras de que cada etapa posterior deve partir
Retornainteger
o número de palavras na menor cadeia, ou 0 se não houver nenhuma

Restrições

  • 1 ≤ beginWord.length ≤ 10
  • endWord e cada palavra em wordList tem o mesmo comprimento que beginWord.
  • 1 ≤ wordList.length ≤ 5000
  • Todas as palavras contêm apenas letras minúsculas do inglês.
  • beginWord != endWord
  • As palavras em wordList são todas diferentes. beginWord pode ou não ser uma delas.

Exemplos

Entrada
beginWord = "lead"endWord = "gold"wordList = ["load", "goad", "gold", "lend", "lewd", "bold"]
Saída
4
Explicação
lead e gold diferem em três letras, então nenhuma escada tem menos de 4 palavras, e lead, load, goad, gold tem exatamente 4 palavras. lend e lewd também diferem de lead por uma letra, mas nenhuma das duas leva a algum lugar novo, e só é possível chegar a bold a partir de gold.

lock icon+14 testes ocultos ao enviar

challenge icon

Para ir além

Você consegue retornar uma das menores escadas em si, com as palavras em ordem, e não apenas o seu comprimento?

Redefinir código
def ladderLength(beginWord, endWord, wordList):
    # Escreva o código aqui
Casos de teste

Caso 1

Caso 2

Caso 3

Entrada

beginWord = "lead"
endWord = "gold"
wordList = ["load", "goad", "gold", "lend", "lewd", "bold"]

Esperado

4