Biorąc pod uwagę ciąg liter i zestaw słów, wypisz kolejność słów, aby można je było znaleźć w ciągu, upuszczając niepotrzebne litery. Słowa mogą występować więcej niż jeden raz w zestawie słów. Łańcuch wejściowy i wszystkie słowa składają się z 1 do 1000 małych liter. Litery, które mają być upuszczone, mogą występować wewnątrz słów lub między słowami.
Twój program lub funkcja może zaakceptować ciąg liter i słowa jako listy, ciąg znaków lub ze STDIN i musi wypisać wszystkie słowa w prawidłowej kolejności jako wyjście listy lub ciągu. Jeśli istnieje więcej niż jedno prawidłowe rozwiązanie, wypisz tylko jedno z nich. Jeśli nie ma możliwego poprawnego rozwiązania, wypisz pustą listę lub pusty ciąg.
Przykłady:
dogcatfrog cat frog dog
-> dog cat frog
xxcatfixsxhingonxgrapexxxfishingcxat cat grape catfish fishing
-> catfish grape fishing cat
dababbabadbaccbcbaaacdacdbdd aa bb cc dd ba ba ba ab ac da db dc
-> da ab ba ba ba cc bb aa ac dc db dd
flea antelope
->
(no solution)
To jest kod golfowy. Najniższa liczba bajtów wygrywa.
Edycja: wyjaśniono, że dodatkowe znaki mogą znajdować się w słowach.
ccprzed bbale bbi ccpodciągi pojawiają się tylko raz, a bbpodciąg pojawia się jako pierwszy.
ccbcbczęści ciągu wypisujemy ccnastępnie wynik bbpo upuszczeniu środka c.