Locandina della prima volta. Attualmente sto programmando un programma di distanza hamming usando un dizionario.
Quindi, se iniziamo con la parola "cat" e vogliamo trasformarla in "dog", la sequenza è cat - > cot - > dot - > dog, e "full" a " tree "è full - > fuel - > feel - > teel - > tyee - > tree. Tutti i prodotti intermedi devono esistere in un dizionario. Ho implementato quella parte e funziona abbastanza bene. La mia domanda riguarda i casi marginali. Alcune parole non hanno trasformazioni, come drago e cosmo. Ma va bene, ho implementato un controllo rapido.
Il vero problema è che ci sono molti percorsi in cui le trasformazioni sono impossibili e non riesco a trovare un modo per verificare se sono impossibili. Ad esempio, heist to flame è heist - > feist - > feast - > feaseX - > fiamma. Raggiungere il punto finale è impossibile e si verifica un ciclo infinito.
Le mie opzioni possibili sono che dopo circa 20 trasformazioni, interrompo il calcolo e faccio un errore, che va bene. Oppure, potrebbe esserci un modo per rilevare un percorso morto prima dell'esecuzione del programma, questa è l'opzione migliore, non sono ottimista è possibile.