Zmieniacz słów to gra, w której próbujesz zamienić jedno słowo w drugie za pomocą edycji pojedynczych znaków, przy czym każdy krok jest własnym słowem. W przypadku tego wyzwania edycjami mogą być zastąpienia, wstawienia lub usunięcia. Na przykład, WINNER → LOSER można wykonać na tej trasie (mogą być inne):
WINNER
DINNER
DINER
DINE
LINE
LONE
LOSE
LOSER
Inaczej mówiąc, musisz być w stanie dotrzeć do jednego słowa od drugiego, przechodząc tylko przez inne słowa w odległości Levenshteina równej 1 za każdym razem.
Kodowanie
Otrzymasz listę słów i dwa słowa i musisz podać prawidłową trasę z jednego słowa do drugiego, jeśli istnieje trasa lub wyraźna stała wartość lub spójne zachowanie, jeśli nie ma trasy.
- Możesz założyć, że słowa wejściowe znajdują się na liście słów
- Listę słów można pobrać w dowolnym wygodnym formacie płaskim.
- Listy, zestawy, próby, łańcuchy rozdzielone spacjami i pliki rozdzielone wierszem są poprawne (na przykład), ale wstępnie obliczony wykres przylegania Levenshteina nie jest.
- Ścieżka wyjściowa powinna zawierać oba słowa wejściowe, ale to, który początek i koniec nie ma znaczenia.
- Jeśli nie zostanie znaleziona żadna trasa, możesz wyprowadzić określoną stałą, wartość fałszowania, pustą listę, wyrzucić wyjątek, wyjść z niezerowym kodem lub inne zachowanie, które dzieje się w skończonym czasie.
- Trasa nie musi być optymalna i nie ma wymogu wyboru trasy
- Złożoność obliczeniowa nie ma znaczenia, jednak należy zagwarantować, że Twój program zakończy działanie w skończonym czasie. (nawet gdyby uciekł poza śmierć z powodu upałów we wszechświecie)
- Możesz założyć, że wszystkie słowa składają się w całości z liter w tym samym przypadku
Przykładowe przypadki testowe
- KOT → Pies; [KOT, PIES, KOG, ŁÓŻKO, ŻABA, GROG, BOG]
- CAT, COT, COG, DOG
- KĄPIEL → PRYSZNIC; [KĄPIEL, PRYSZNIC, HATH, HAT, BAT, SAT, SAW, SOW, SHOW, HOW]
- Nie znaleziono trasy
- PRZERWA → POPRAWKA; [PRZERWA, FIX, BEAK, CHLEB, CZYTANIE, KORALIK, CZERWONY, ŁÓŻKO, ZŁY, BID, FAD, FAKS]
- PRZERWA, CHLEB, BEAD, BAD, FAD, FAKS, NAPRAWA
- BUDOWA → ZNISZCZENIE; [BUDOWLANY, ZNISZCZONY, BUDOWANY, WILGOCI, GILDIA, GILD, BILL, BILL, KOPALNY, WYPEŁNIJ, ZNISZCZENIE, STRUKTURA, KONSTRUKCJA]
- Nie znaleziono trasy
- KARTA → TABLICA; [KARTA, TABLICA, BARD]
- KARTA, BARD, TABLICA
- DEMON → ANIOŁ; [DEMON, ANIOŁ]
- Nie znaleziono trasy
- OSTATNI → PRZESZŁOŚĆ; [LAST, PAST, BLAST, CAST, BLACK, GHOST, POST, BOAST]
- OSTATNI, PRZESZŁOŚĆ
- WSTAW → USUŃ; Ta lista słów
- WSTAW, ODWRÓCONY, WYNALAZKOWY, WEWNĘTRZNY, NIEWYGRANY, NIEZGIĘTY, ODŁĄCZ, ODŁĄCZ, ODBIERZANIE, WTUROWANIE, IRKOWANIE, SPALANIE, CIEMNOŚĆ, ROZWINIĘCIE, USUWANIE, LECZENIE, SIRING, SEROWANIE, SERINE, NERINE, NERITE, CERITE, CERATE, DELATE, DERATE USUNĄĆ