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 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, portanto endWord deve estar nela; beginWord não precisa estar.

Retorne o número de palavras na escada mais curta, contando as duas extremidades, ou 0 se não houver nenhuma.

Função

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

Restrições

  • 1 ≤ beginWord.length ≤ 10
  • endWord e cada palavra em wordList têm 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 uma escada precisa de pelo menos 4 palavras, e lead, load, goad, gold tem 4. lend e lewd são becos sem saída.
challenge icon

Para ir além

Você pode retornar uma sequência de palavras mais curta — com as palavras em ordem — em vez do comprimento dela?

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

Teste #1

Teste #2

Teste #3

Argumentos

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

Saída Esperada

4