Recientemente hubo una pregunta sobre Stack Overflow en la que el OP estaba tratando de escribir una función para encontrar la palabra en una cadena que tiene las letras más repetidas. Por supuesto, no es difícil escribir uno en segundos, y escribí uno en Javascript lo más breve posible por diversión. Pero no soy un experto en golf de código, así que me pregunto cuánto más corto puede ser este simple programa.
Desafío
Escriba un programa o función que tome una cadena de palabras y devuelva o imprima la palabra con las letras individuales más repetidas.
Reglas:
Elija la palabra con el mayor número de letras simples repetidas (vea los ejemplos a continuación)
Si ninguna palabra tiene letras repetidas, devuelve -1.
Si dos palabras tienen el mismo número máximo de letras repetidas, elija la más cercana al comienzo de la cadena.
La presentación más corta en bytes gana.
Entrada
Tome como entrada una cadena que consta de una o más palabras delimitadas por espacios. La entrada puede ser de STDIN (o la alternativa más cercana), parámetros de línea de comando o argumentos de función.
Salida
Imprima el resultado en STDOUT para devolverlo.
Ejemplos
Considera la cuerda aaabbb cccc
. Este contiene dos palabras: aaabbb
y cccc
. La palabra aaabbb
tiene 3 a
y 3 b
, y cccc
tiene 4 c
. Entonces, el número máximo de letras repetidas aaabbb
es 3 y el máximo cccc
es 4. Queremos elegir la palabra con el número máximo de letras simples repetidas, por lo que la salida para aaabbb cccc
debería ser cccc
.
Otros casos de prueba:
Today, is the greatest day ever! --> greatest
This is a great day --> -1
aaabbb cccc --> cccc
ever
aabb
tiene 2 letras repetidas. Se aaaabb
consideraría que tiene 4 letras repetidas (2da, 3ra, 4ta a
, 2da b
) o 2 letras repetidas ( a
y b
).