Inspirado en este maravilloso desafío (basado en el número de puntos de vista y votos), que, en mi humilde opinión, tiene muy pocas respuestas.
Dada (por cualquier medio) una lista de cadenas, devuelva (por cualquier medio) un conjunto de letras que, cuando se eliminan de las cadenas dadas, deja la longitud total de (lo que queda de) las cadenas lo más pequeña posible, mientras mantiene cada cadena única y al menos un carácter de largo.
Ejemplos:
Dado "Día" y "día"; devuelve "ay", porque las cadenas dadas serán "D" y "d" cuando se eliminen los caracteres "ay".
Dado "Hello World!", "Hello world" y "Hello world"; return "Helo Wrd" da porque las cadenas serán "!", "w." y "w" cuando se eliminan los caracteres "Helo Wrd" (con un espacio).
Dados "siglo", "década", "año", "mes", "semana", "día", "hora", "minuto" y "segundo"; devuelva "centurdowi" porque las palabras dadas serán "y", "a", "ya", "mh", "k", "ay", "h", "m", "s" cuando los caracteres "centurdowi " son removidos.
El orden y el formato del conjunto devuelto no es importante.
Respuestas:
Haskell,
138130 bytesEjemplo de uso:
f ["century", "decade", "year", "month", "week", "day", "hour", "minute", "second"]
->"centurdoki"
.Este es un enfoque de fuerza bruta.
Editar: @Seeq me ayudó a ahorrar 8 bytes. ¡Gracias!
fuente
map(#s)
tal, así que no necesitas voltearnotElem
? EDITAR: ¿O no podrías simplemente en línea?map(#s)
,(#)
debe definirse comoflip (filter . flip notElem)
. Pero, por supuesto, la alineación es mucho más corta. ¡Gracias!Pyth, 34
Toma entrada en el formato
["century", "decade", "year", "month", "week", "day", "hour", "minute", "second"]
. Los consejos de golf son apreciados, como siempre.fuente
Pyth, 24 bytes
Pruébalo en línea. Banco de pruebas.
Tenga en cuenta que el último caso de prueba tardará un poco en ejecutarse.
Toma la entrada en forma de matriz, como
["Day", "day"]
.Otro interesante que encontré e isaacg mejorado (también 24 bytes):
fuente
-J{sQhlDsM.A#f{ITm-RdQyJ
aquí