Menu
CoddyTech

Word Ladder

DifficileGrafiCodapython iconjava iconcpp iconc iconjs icon+10

Ti vengono date due parole, beginWord e endWord, e un elenco di parole wordList. Una scala inizia con beginWord, termina con endWord e cambia esattamente una lettera da una parola alla successiva. Ogni parola dopo beginWord deve provenire da wordList, quindi endWord deve esservi presente; beginWord non è necessario che vi sia.

Restituisci il numero di parole nella scala più breve, contando entrambi gli estremi, oppure 0 se non ne esiste nessuna.

Funzione

ladderLength(beginWord: string, endWord: string, wordList: string-array) → integer
beginWordstring
la prima parola della scala
endWordstring
la parola che la scala deve raggiungere
wordListstring-array
le parole da cui deve provenire ogni passaggio successivo
Restituisceinteger
il numero di parole nella scala più breve, oppure 0 se non ce n’è nessuna

Vincoli

  • 1 ≤ beginWord.length ≤ 10
  • endWord e ogni parola in wordList ha la stessa lunghezza di beginWord.
  • 1 ≤ wordList.length ≤ 5000
  • Tutte le parole contengono solo lettere minuscole dell'alfabeto inglese.
  • beginWord != endWord
  • Le parole in wordList sono tutte diverse. beginWord potrebbe essere una di esse oppure no.

Esempi

Input
beginWord = "lead"endWord = "gold"wordList = ["load", "goad", "gold", "lend", "lewd", "bold"]
Output
4
Spiegazione
lead e gold differiscono per tre lettere, quindi una scala richiede almeno 4 parole, e lead, load, goad, gold ne contiene 4. lend e lewd sono vicoli ciechi.
challenge icon

Per approfondire

Puoi restituire una delle sequenze più brevi, con le parole nell'ordine, invece della sua lunghezza?

Ripristina il codice
def ladderLength(beginWord, endWord, wordList):
    # Scrivi il codice qui

Test #1

Test #2

Test #3

Argomenti

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

Output atteso

4