Wyzwanie to opiera się na problemie opisanym w D. Parnas, O kryteriach, które należy zastosować przy rozkładaniu systemów na moduły , i rozwiniętych w J. Morris, Real Programming in Functional Languages .
Napisz program lub funkcję, która pobiera listę tytułów książek z stdin
lub jako argument, w rozsądnym, wygodnym formacie dla twojego języka. Na przykład,
Green Sleeves
Time Was Lost
lub
("Green Sleeves";"Time Was Lost")
Wróć lub wydrukuj na stdout
alfabetycznej liście słów kluczowych, pokazując ich kontekst w oryginalnych tytułach, umieszczając każde słowo kluczowe w nawiasach klamrowych ( <
i >
). Podobnie jak w przypadku danych wejściowych, dane wyjściowe mogą być w rozsądnym formacie, który jest wygodny dla linii oddzielonych językiem, wierszy itp.:
<Green> Sleeves
Time Was <Lost>
Green <Sleeves>
<Time> Was Lost
Time <Was> Lost
Tytuły będą się składały z szeregu słów kluczowych oddzielonych pojedynczym odstępem. Słowa kluczowe będą zawierać tylko znaki alfabetyczne. Słowa kluczowe należy posortować leksykograficznie . Tytuły będą unikalne, a słowa kluczowe będą unikalne w obrębie każdego tytułu, ale to samo słowo kluczowe może istnieć w kilku tytułach. Jeśli słowo kluczowe istnieje w więcej niż jednym tytule, dane wyjściowe powinny zawierać listę każdego wystąpienia w dowolnej kolejności . Na przykład, biorąc pod uwagę te dane wejściowe:
A Dugong
A Proboscis
Prawidłowy wynik to:
<A> Proboscis
<A> Dugong
A <Dugong>
A <Proboscis>
Lub:
<A> Dugong
<A> Proboscis
A <Dugong>
A <Proboscis>
To jest golf golfowy - zwycięzca jest najkrótszym rozwiązaniem w bajtach. Standardowe luki są niedozwolone.