Inspirado por esse desafio maravilhoso (baseado no número de opiniões e votos), que, na minha humilde opinião, tem poucas respostas.
Dada (por qualquer meio) uma lista de cadeias, retorne (por qualquer meio) um conjunto de letras que, quando removidas das cadeias fornecidas, deixa o comprimento total (o que resta) das cadeias o menor possível, mantendo cada string exclusiva e com pelo menos um caractere.
Exemplos:
Dado "dia" e "dia"; retorne "ay", porque as seqüências fornecidas serão "D" e "d" quando os caracteres "ay" forem removidos.
Dado "Olá, mundo!", "Olá, mundo." E "Olá, mundo"; return "Helo Wrd" fornece porque as strings serão "!", "w." e "w" quando os caracteres "Helo Wrd" (com um espaço) forem removidos.
Dado "século", "década", "ano", "mês", "semana", "dia", "hora", "minuto" e "segundo"; retorne "centurdowi" porque as palavras fornecidas serão "y", "a", "ya", "mh", "k", "ay", "h", "m", "s" quando os caracteres "centurdowi" " estão removidos.
A ordem e o formato do conjunto retornado não são importantes.
Respostas:
Haskell,
138130 bytesExemplo de uso:
f ["century", "decade", "year", "month", "week", "day", "hour", "minute", "second"]
->"centurdoki"
.Esta é uma abordagem de força bruta.
Edit: @Seeq me ajudou a salvar 8 bytes. Obrigado!
fonte
map(#s)
tal, então você não precisa virarnotElem
? EDIT: Ou você não poderia simplesmente inline?map(#s)
,(#)
deve ser definida comoflip (filter . flip notElem)
. Mas é claro que inlining é muito menor. Obrigado!Pyth, 34
Recebe entrada no formato
["century", "decade", "year", "month", "week", "day", "hour", "minute", "second"]
. Dicas de golfe são apreciadas, como sempre.fonte
Pitão, 24 bytes
Experimente online. Suíte de teste.
Observe que o último caso de teste levará um tempo para ser executado.
Recebe entrada em forma de matriz, como
["Day", "day"]
.Outro interessante que encontrei e o isaacg melhorou (também 24 bytes):
fonte
-J{sQhlDsM.A#f{ITm-RdQyJ
aqui