Breve descrição do desafio:
baseado no ETAOIN SHRDLU , seu desafio é escrever o programa ou a função mais curto em qualquer idioma que produza as 26 letras do alfabeto inglês com base na frequência na entrada.
Especificação muito longa, seca e completa:
- Seu programa / função receberá como entrada uma sequência de texto, que conterá uma ou mais letras maiúsculas e / ou minúsculas e também poderá conter pontuação, numerais, símbolos e outros caracteres não alfabéticos.
- O programa / função deve produzir apenas as 26 letras maiúsculas do alfabeto inglês, incluindo as que não aparecem na entrada, ordenadas da mais para a menos frequente com base em quantas vezes elas aparecem na entrada.
- Editar: a frequência é calculada sem distinção entre maiúsculas e minúsculas, mas a saída deve estar em maiúsculas.
- Se duas ou mais letras tiverem a mesma frequência, elas podem estar em qualquer ordem.
Nenhuma outra saída, como espaço em branco, é permitida.- Editar 1/7/2014: com base nos comentários, estou alterando esta regra. A única outra saída permitida é o espaço em branco inicial e / ou final opcional, como uma nova linha final. Nenhuma outra saída é permitida.
- Comportamento indefinido é permitido para entrada que não contém nenhuma letra.
O vencedor será escolhido daqui a sete dias, então digite os dedos!
Exemplo de entrada:
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.
Exemplo de saída:
EITUSALNROMCDPVGQBFHJKWXYZ
Nota: existe um empate de 5 vias KWXYZ
para essa entrada.
Editar:
A competição acabou! Obrigado a todos que participaram. E agora para o (s) vencedor (es): As respostas de Dennis 'CJam e Isaacg's Pyth chegaram com 19 caracteres impressionantes. (Desculpe, mas não vou aceitar nenhuma das respostas, porque acho que seria injusto com a outra.) Editar: Seguindo o conselho de Dennis, vou marcar sua resposta como aceita, porque foi a primeira a alcance 19 caracteres. Menções honrosas vão para a resposta Golfscript, de Ilmari Karonen, em terceiro lugar, com 22 caracteres, bem como a resposta Python de 75 caracteres, do undergroundmonorail, que obteve o maior número de votos. Mais uma vez, obrigado a todos que participaram!