Word Changer ist ein Spiel, bei dem Sie versuchen, ein Wort durch Bearbeiten einzelner Zeichen in ein anderes zu verwandeln, wobei jeder Schritt ein eigenes Wort ist. Für diese Herausforderung können Änderungen Ersetzungen, Einfügungen oder Löschungen sein. Zum Beispiel kann WINNER → LOSER mit dieser Route durchgeführt werden (es kann auch andere geben):
WINNER
DINNER
DINER
DINE
LINE
LONE
LOSE
LOSER
Anders ausgedrückt, Sie müssen in der Lage sein, ein Wort von dem anderen zu erreichen, indem Sie nur durch andere Wörter mit einem Levenshtein-Abstand von jeweils 1 gehen.
Codierung
Sie erhalten eine Wortliste und zwei Wörter und müssen eine gültige Route von einem Wort zum anderen ausgeben, wenn eine Route existiert, oder einen bestimmten konstanten Wert oder ein konsistentes Verhalten, wenn keine Route existiert.
- Sie können davon ausgehen, dass sich beide Eingabewörter in der Wortliste befinden
- Die Wortliste kann über jedes beliebige flache Format aufgenommen werden.
- Listen, Mengen, Versuche, durch Leerzeichen getrennte Zeichenfolgen und durch Zeilen getrennte Dateien sind alle gültig (z. B.), ein vorberechnetes Diagramm der Levenshtein-Adjazenz jedoch nicht.
- Die Ausgaberoute sollte beide Eingabewörter enthalten, aber was beginnt und endet, spielt keine Rolle.
- Wenn keine Route gefunden wird, können Sie eine bestimmte Konstante, einen falschen Wert, eine leere Liste, eine Ausnahme ausgeben, mit einem Code ungleich Null beenden oder jedes andere Verhalten, das in endlicher Zeit auftritt.
- Die Route muss nicht optimal sein und es gibt keine Anforderung, welche Route genommen werden soll
- Die Komplexität der Berechnungen spielt keine Rolle, es muss jedoch nachweislich gewährleistet sein, dass Ihr Programm in einer begrenzten Zeitspanne endet. (Auch wenn es über den Hitzetod des Universums hinaus laufen würde)
- Sie können davon ausgehen, dass alle Wörter im selben Fall vollständig aus Buchstaben bestehen
Beispiel Testfälle
- CAT → HUND; [CAT, HUND, COG, COT, FROSCH, GROG, BOG]
- CAT, COT, COG, DOG
- BAD → DUSCHE; [BAD, DUSCHE, HAT, HAT, BAT, SAT, SÄGE, SÄGE, SHOW, WIE]
- Keine Route gefunden
- BREAK → FIX; [BREAK, FIX, BEAK, BROT, READ, BEAD, ROT, BETT, SCHLECHT, BIETEN, FAD, FAX]
- BREAK, BROT, BEAD, BAD, FAD, FAX, FIX
- BAUEN → ZERSTÖREN; [BAUEN, ZERSTÖREN, BAUEN, SCHULDEN, GILDEN, GILDEN, KÜHLEN, RECHNEN, DILLEN, FÜLLEN, ZERSTÖREN, STRUKTURIEREN, BAUEN]
- Keine Route gefunden
- CARD → BOARD; [KARTE, BRETT, BARD]
- KARTE, BARD, BOARD
- DEMON → ENGEL; [DEMON, ANGEL]
- Keine Route gefunden
- LAST → PAST; [LAST, PAST, BLAST, CAST, SCHWARZ, GEIST, POST, BOAST]
- LETZT, VERGANGEN
- INSERT → DELETE; Diese Wortliste
- INSERT, INVERT, INVENT, INBENT, UNBENT, UNBEND, UNBIND, UNKIND, UNKING, INKING, IRKING, DIRKING, DUNKEL, DARLING, ARLING, AILING, SIRING, SERING, SERIN, NERIN, NERIT, CERIT, CERATE LÖSCHEN