Biorąc pod uwagę plik słownika (plik tekstowy zawierający słowo lub frazę w każdym wierszu, z możliwą interpunkcją, ale bez liczb; wiersze są alfabetycznie), musisz wyprowadzić każdą kombinację słów, w której jedną literę można usunąć ze słowa, aby utworzyć drugą; usunięta litera powinna być ujęta w nawiasy.
Na przykład dane wejściowe
cat
cart
code
golf
ode
verify
versify
powinien dać wynik
ca(r)t
(c)ode
ver(s)ify
Wiele sposobów uzyskania tej samej pary można wyświetlić tylko raz. Możesz wyprowadzać scra(p)pedlub scrap(p)ed, ale nie oba jednocześnie.
Wyjście powinno być uporządkowane alfabetycznie według dłuższego wpisu;
mart
mar
mat
ma
powinien mieć wynik
ma(r)
ma(t)
ma(r)t
mar(t)
a dwa ostatnie mogą być w dowolnej kolejności.
Plik słownika może zawierać wielkie litery, spacje, łączniki lub apostrofy; należy je zignorować. Na przykład,
inlay
in-play
powinien produkować in(p)lay. Twój wynik powinien być w tym samym przypadku. Dozwolone są dodatkowe białe znaki.
Dane wejściowe mogą być STDIN lub z pliku; jest oddzielony znakami nowej linii. Wyjściem może być wartość zwracana przez funkcję lub STDOUT (lub zapisana do pliku, jeśli chcesz).
To jest golf golfowy , więc wygrywa najkrótszy kod w bajtach.
(To moje pierwsze wyzwanie na PPCG - daj mi znać, jeśli zrobiłem coś złego, a ja to naprawię.)
mart mar mat ma? Czy by tomar(t) ma(r)t ma(r) ma(t)bylo