O código deve receber um texto de entrada (não obrigatório, pode ser qualquer arquivo, stdin, string para JavaScript, etc):
This is a text and a number: 31.
A saída deve conter as palavras com seu número de ocorrência, classificadas pelo número de ocorrências em ordem decrescente:
a:2
and:1
is:1
number:1
This:1
text:1
31:1
Observe que 31 é uma palavra; portanto, uma palavra é qualquer coisa alfanumérica; o número não está atuando como separador; portanto, por exemplo, é 0xAF
qualificado como uma palavra. Separadores serão qualquer coisa que não seja alfanumérica, incluindo .
(ponto) e -
(hífen), portanto, i.e.
ou pick-me-up
resultariam em 2, respectivamente, 3 palavras. Deve ser sensível a maiúsculas e minúsculas This
e this
incluir duas palavras diferentes, '
também seria um separador wouldn
e t
serão 2 palavras diferentes dewouldn't
.
Escreva o código mais curto no seu idioma de escolha.
Resposta correta mais curta até agora:
This
o mesmo quethis
etHIs
)?wouldn't
2 palavras (wouldn
et
)?This
ethis
seria de fato duas palavras diferentes, iguaiswouldn
et
.i.e.
é uma palavra, mas se deixarmos todos os pontos no ponto final de frases serão tomadas, mesmo com aspas ou plicas, etc.