Krótki i słodki opis wyzwania:
Opierając się na ETAOIN SHRDLU , Twoim zadaniem jest napisanie najkrótszego programu lub funkcji w dowolnym języku, który wypisuje 26 liter alfabetu angielskiego na podstawie ich częstotliwości na wejściu.
Naprawdę długa, sucha i dokładna specyfikacja:
- Twój program / funkcja otrzyma jako wejście ciąg tekstu, który będzie zawierał jedną lub więcej wielkich i / lub małych liter, a także może zawierać znaki interpunkcyjne, cyfry, symbole i inne znaki niealfabetyczne.
- Program / funkcja musi wyprowadzać tylko 26 wielkich liter alfabetu angielskiego, w tym te, które nie pojawiają się na wejściu, uporządkowane od największej do najmniejszej w zależności od tego, ile razy pojawiają się na wejściu.
- Edycja: Częstotliwość jest obliczana bez rozróżniania wielkości liter, ale dane wyjściowe muszą być pisane wielkimi literami.
- Jeśli dwie lub więcej liter ma tę samą częstotliwość, mogą być w dowolnej kolejności.
Żadne inne dane wyjściowe, takie jak białe znaki, nie są dozwolone.- Edytuj 7/1/2014: W oparciu o informacje zwrotne zmieniam tę zasadę. Jedynym dozwolonym wyjściem jest opcjonalne początkowe i / lub końcowe białe znaki, takie jak końcowy znak nowej linii. Żadne inne dane wyjściowe nie są dozwolone.
- Niezdefiniowane zachowanie jest dozwolone dla danych wejściowych, które nie zawierają żadnych liter.
Zwycięzca zostanie wybrany za 7 dni, więc zacznij pisać!
Przykładowe dane wejściowe:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vitae erat velit. Mauris gravida euismod libero ut tincidunt. Phasellus elit dui, consectetur et egestas in, aliquam vitae diam. Donec eget varius ante. Vestibulum cursus diam aliquet, egestas orci quis, placerat dolor. Proin vel nisi lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Aliquam erat volutpat. Etiam libero tortor, ornare id dui eget, posuere dignissim libero. Pellentesque commodo consequat volutpat. Integer hendrerit sapien libero, vel viverra augue facilisis sit amet. Quisque consectetur eget nisl quis dignissim. Ut lacinia pretium quam a placerat.
Morbi sed interdum risus, nec pretium lectus. Morbi imperdiet est id accumsan molestie. Duis sed fermentum nisl. Nunc vitae augue mattis, dictum lectus vel, accumsan nisl. Sed ultricies adipiscing rhoncus. Vivamus eu lacus a enim venenatis eleifend. Praesent consectetur tortor non eleifend ultricies. Mauris et odio posuere, auctor erat at, fringilla est. Proin in vestibulum erat. Maecenas congue commodo ante vel varius. Sed tempus mi ut metus gravida, nec dictum libero dapibus. Morbi quis viverra elit. Ut pharetra neque eget lacus tincidunt dictum. Fusce scelerisque viverra tellus et pretium.
Fusce varius adipiscing odio. Nulla imperdiet faucibus sem, at rhoncus ipsum adipiscing vitae. Phasellus imperdiet congue lacus et mollis. Nullam egestas mauris magna, et mollis lectus varius ut. Sed sollicitudin adipiscing dolor, vel elementum elit laoreet molestie. Aliquam nec nulla vel sem ultrices ullamcorper. Nullam nec felis magna. Duis sodales orci non justo aliquam tempus. Integer mi diam, tempor sed vulputate et, varius et nunc. Vestibulum sodales ipsum id mi pharetra, ut convallis mi accumsan. Sed dictum volutpat vestibulum.
Quisque ac dolor sagittis, aliquam libero at, euismod enim. Nulla ullamcorper posuere nulla vitae varius. Nam at dolor non libero elementum pellentesque in in lorem. Fusce porttitor turpis in quam placerat varius. Donec lorem orci, condimentum eu sapien sit amet, aliquet commodo magna. Quisque sed lectus sit amet arcu euismod accumsan et non nunc. Phasellus placerat congue metus, feugiat posuere leo dictum quis. Sed ultricies feugiat eros dignissim bibendum.
Mauris scelerisque consectetur libero eget varius. Aenean neque nunc, ullamcorper vitae orci in, auctor ornare sapien. Nam lacinia molestie imperdiet. Nam vitae mattis nibh. Vestibulum consequat tellus ac nisi sagittis pulvinar. Nullam mollis ornare quam, et venenatis leo porttitor sit amet. Nulla urna neque, dignissim non orci ut, volutpat ultrices erat. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque vestibulum tellus nec eros faucibus porta.
Przykładowe dane wyjściowe:
EITUSALNROMCDPVGQBFHJKWXYZ
Uwaga: KWXYZ
dla tego wejścia istnieje 5-krotny remis .
Edytować:
Konkurs się skończył! Dziękujemy wszystkim, którzy wzięli udział. A teraz zwycięzca (zwycięzcy!): Zarówno CJam Dennisa, jak i Pyta Isaacga otrzymały 19 ogromnych postaci. (Przepraszam, ale nie zamierzam przyjąć żadnej z odpowiedzi, ponieważ uważam, że byłoby to niesprawiedliwe w stosunku do drugiej.) Edytuj: Biorąc radę Dennisa, oznaczę jego odpowiedź jako zaakceptowaną, ponieważ to on jako pierwszy osiągnąć 19 znaków. Wyróżnienia należą do odpowiedzi Ilmari Karonen na trzecie miejsce w Golfscript przy 22 znakach, a także 75- znakowej odpowiedzi Python podziemnego kolejki, która uzyskała najwięcej pozytywnych opinii. Jeszcze raz dziękuję wszystkim, którzy wzięli udział!