Recentemente, houve uma pergunta no Stack Overflow em que o OP estava tentando escrever uma função para encontrar a palavra em uma string com as letras mais repetidas. Obviamente, não é difícil escrever uma em segundos, e eu escrevi uma em Javascript o mais curta possível para me divertir. Mas eu não sou especialista em golfe por código, então me pergunto quanto mais curto pode ser esse programa simples!
Desafio
Escreva um programa ou função que capte uma sequência de palavras e retorne ou imprima a palavra com as letras únicas mais repetidas.
Regras:
Escolha a palavra com o maior número de letras únicas repetidas (veja exemplos abaixo)
Se nenhuma palavra tiver letras repetidas, retorne -1.
Se duas palavras tiverem o mesmo número máximo de letras repetidas, escolha a mais próxima do início da sequência.
O menor envio em bytes vence.
Entrada
Tome como entrada uma sequência que consiste em uma ou mais palavras delimitadas por espaço. A entrada pode ser de STDIN (ou alternativa mais próxima), parâmetros de linha de comando ou argumentos de função.
Resultado
Imprima a saída em STDOUT para devolvê-la.
Exemplos
Considere a string aaabbb cccc
. Isso contém duas palavras: aaabbb
e cccc
. A palavra aaabbb
tem 3 a
'e 3 b
' e cccc
tem 4 c
'. Portanto, o número máximo de letras repetidas em aaabbb
é 3 e o máximo em cccc
é 4. Queremos escolher a palavra com o número máximo de letras únicas repetidas, portanto a saída para aaabbb cccc
deve ser cccc
.
Outros casos de teste:
Today, is the greatest day ever! --> greatest
This is a great day --> -1
aaabbb cccc --> cccc
ever
aabb
tem 2 letras repetidas. Seria aaaabb
considerado como tendo 4 letras repetidas (2ª, 3ª, 4ª a
, 2ª b
) ou 2 letras repetidas ( a
e b
).