Word Changer è un gioco in cui stai cercando di trasformare una parola in un'altra tramite modifiche a carattere singolo, con ogni passaggio che è la sua parola. Per questa sfida, le modifiche possono essere sostituzioni, inserzioni o eliminazioni. Ad esempio, WINNER → LOSER può essere eseguito con questo percorso (potrebbero essercene altri):
WINNER
DINNER
DINER
DINE
LINE
LONE
LOSE
LOSER
Frase in un altro modo, devi essere in grado di raggiungere una parola dall'altra passando solo attraverso altre parole a una distanza di Levenshtein pari a 1 ogni volta.
Coding
Ti verrà fornito un elenco di parole e due parole e devi generare un percorso valido da una parola all'altra se esiste una rotta o un valore costante distinto o un comportamento coerente se non esiste alcuna rotta.
- Si può presumere che le parole di input siano entrambe nell'elenco delle parole
- L'elenco delle parole può essere preso in qualsiasi formato piatto conveniente.
- Elenchi, insiemi, tentativi, stringhe separate da spazi e file separati da linee sono tutti validi (ad esempio), ma un grafico precalcolato dell'adiacenza di Levenshtein non lo è.
- La route di output dovrebbe includere entrambe le parole di input, ma l'inizio e la fine non contano.
- Se non viene trovato alcun percorso, è possibile generare una costante specifica, un valore errato, un elenco vuoto, generare un'eccezione, uscire con un codice diverso da zero o qualsiasi altro comportamento che si verifica a tempo finito.
- Il percorso non deve essere ottimale e non è richiesto quale percorso debba essere intrapreso
- La complessità computazionale non ha importanza, tuttavia il programma deve essere garantito in modo da terminare entro un tempo limitato. (anche se andrebbe oltre la morte di calore dell'universo)
- Puoi presumere che tutte le parole siano interamente composte da lettere nello stesso caso
Esempi di casi di test
- CAT → CANE; [CAT, DOG, COG, COT, FROG, GROG, BOG]
- GATTO, COT, COG, CANE
- BAGNO → DOCCIA; [BAGNO, DOCCIA, HATH, HAT, BAT, SAT, SAW, SOW, SHOW, HOW]
- Nessun percorso trovato
- BREAK → FIX; [BREAK, FIX, BEAK, BREAD, READ, BEAD, RED, BED, BAD, BID, FAD, FAX]
- BREAK, BREAD, BEAD, BAD, FAD, FAX, FIX
- COSTRUISCI → DISTRUGGI; [COSTRUISCI, DISTRUGGI, COSTRUITO, INCORPORATO, GUILD, GILD, GILL, BILL, DILL, FILL, DESTRUCT, STRUCTURE, COSTRUCT]
- Nessun percorso trovato
- SCHEDA → SCHEDA; [CARD, BOARD, BARD]
- SCHEDA, BARD, SCHEDA
- DEMONE → ANGEL; [DEMONE, ANGELO]
- Nessun percorso trovato
- ULTIMO → PASSATO; [LAST, PAST, BLAST, CAST, BLACK, GHOST, POST, BOAST]
- ULTIMO, PASSATO
- INSERISCI → ELIMINA; Questa lista di parole
- INSERISCI, INVERTI, INVENT, INBENT, UNBENT, UNBEND, UNBIND, UNKIND, UNKING, INKING, IRKING, DIRKING, DARKING, DARLING, ARLING, AILING, SIRING, SERING, SERINE, NERINE, NERITE, CERITE, CERATE, DERATE, DELATE, ELIMINA