Menu
CoddyTech

Word Ladder

DifícilGrafosColapython iconjava iconcpp iconc iconjs icon+10

Se te dan dos palabras, beginWord y endWord, y una lista de palabras wordList. Una escalera es una secuencia de palabras que comienza con beginWord, termina con endWord y cambia exactamente una letra de cada palabra a la siguiente. Todas las palabras después de beginWord deben provenir de wordList.

Devuelve el número de palabras de la escalera más corta, contando ambos extremos, o 0 si no existe ninguna escalera. Por ejemplo, cold, cord, card es una escalera de 3 palabras. beginWord no tiene que estar en wordList, pero endWord sí.

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 provenir cada paso posterior
Devuelveinteger
el número de palabras en 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. beginWord puede ser una de ellas o 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 ninguna escalera tiene menos de 4 palabras, y lead, load, goad, gold tiene exactamente 4. lend y lewd también difieren en una letra de lead, pero ninguna lleva a un lugar nuevo, y solo se puede llegar a bold desde gold.

lock icon+14 pruebas ocultas al enviar

challenge icon

Para ir más allá

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

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

Caso 1

Caso 2

Caso 3

Entrada

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

Esperado

4