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 è una sequenza di parole che inizia con beginWord, termina con endWord e cambia esattamente una lettera da una parola alla successiva. Ogni parola dopo beginWord deve provenire da wordList.

Restituisci il numero di parole nella scala più breve, contando entrambe le estremità, oppure 0 se non esiste alcuna scala. Per esempio, cold, cord, card è una scala di 3 parole. beginWord non deve necessariamente essere in wordList, ma endWord sì.

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ù corta, 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 inglesi minuscole.
  • beginWord != endWord
  • Le parole in wordList sono tutte diverse. beginWord può essere o meno una di esse.

Esempi

Input
beginWord = "lead"endWord = "gold"wordList = ["load", "goad", "gold", "lend", "lewd", "bold"]
Output
4
Spiegazione
lead e gold differiscono per tre lettere, quindi nessuna sequenza ha meno di 4 parole, e lead, load, goad, gold ne ha esattamente 4. Anche lend e lewd differiscono da lead per una lettera, ma nessuna delle due porta a una nuova parola, e a bold si può arrivare solo da gold.

lock icon+14 test nascosti all’invio

challenge icon

Per approfondire

Puoi restituire una delle catene più brevi, con le parole in ordine, e non solo la sua lunghezza?

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

Caso 1

Caso 2

Caso 3

Input

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

Atteso

4