Menu
CoddyTech

Word Ladder

DifícilGrafosColapython iconjava iconcpp iconc iconjs icon+10

Recibes dos palabras, beginWord y endWord, y una lista de palabras wordList. Una escalera empieza con beginWord, termina con endWord y cambia exactamente una letra de cada palabra a la siguiente. Todas las palabras posteriores a beginWord deben provenir de wordList, así que endWord debe estar en ella; beginWord no tiene por qué estarlo.

Devuelve la cantidad de palabras de la escalera más corta, contando ambos extremos, o 0 si no hay ninguna.

Función

ladderLength(beginWord: string, endWord: string, wordList: string-array) → integer
beginWordstring
la primera palabra de la escalera
endWordstring
la palabra a la que debe llegar la escalera
wordListstring-array
las palabras de las que debe partir cada paso posterior
Devuelveinteger
el número de palabras de la escalera más corta, o 0 si no hay ninguna

Restricciones

  • 1 ≤ beginWord.length ≤ 10
  • endWord y cada palabra de wordList tienen la misma longitud que beginWord.
  • 1 ≤ wordList.length ≤ 5000
  • Todas las palabras contienen únicamente letras minúsculas del alfabeto inglés.
  • beginWord != endWord
  • Las palabras de wordList son todas diferentes. Es posible que beginWord sea una de ellas o que no.

Ejemplos

Entrada
beginWord = "lead"endWord = "gold"wordList = ["load", "goad", "gold", "lend", "lewd", "bold"]
Salida
4
Explicación
lead y gold difieren en tres letras, así que una escalera necesita al menos 4 palabras, y lead, load, goad, gold tiene 4. lend y lewd son callejones sin salida.
challenge icon

Para ir más allá

¿Puedes devolver una de las escaleras más cortas, con las palabras en orden, en lugar de su longitud?

Restablecer código
def ladderLength(beginWord, endWord, wordList):
    # Escribe el código aquí

Prueba #1

Prueba #2

Prueba #3

Argumentos

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

Salida Esperada

4