Com o texto fornecido abaixo, há algumas palavras no texto que se repetem várias vezes no texto. Use qualquer linguagem de programação para escrever um código curto que comprima o texto para exibi-lo. Ou, em outras palavras, use o menor número de bytes para exibir o texto.
O texto é:
Peter Piper picked a peck of pickled peppers.
A peck of pickled peppers Peter Piper picked.
If Peter Piper picked a peck of pickled peppers,
Where's the peck of pickled peppers Peter Piper picked?
code-golf
string
kolmogorov-complexity
Monolica
fonte
fonte
Respostas:
R , 106 bytes
Experimente online!
fonte
Geléia ,
80 73 72 68 67 6157 bytesExperimente online!
Quão?
fonte
Bubblegum ,
7371 bytesExperimente online!
fonte
gzip
o nível de compactação mais alto (-9
), além de alguns barbeadores de metadados usandohead
etail
, o 71 byter é gerado usando o zopfli, que eu esqueci inicialmente. O Zopfli geralmente cria fluxos DEFLATE mais curtos.JavaScript (SpiderMonkey) , 114 bytes
Experimente online!
Eu diria que esta resposta é de ovs , de qualquer maneira, 19 bytes salvos.
Obrigado Arnauld , economiza 3 bytes.
fonte
Python 2 , 115 bytes
Experimente online!
Imprime várias strings separadas por vírgulas para colocar espaços entre elas.
Python 3 , 115 bytes
Experimente online!
Python 3
translate
faz o trabalho pesado. O uso de caracteres não imprimíveis com o valor ASCII de um dígito deve salvar dois bytes.fonte
exit
economiza 1 byte para o programa Python 3.Geléia ,
64605857 bytesExperimente online!
fonte
“...“...»
) para formar a maioria das quatro linhas e depois intercalando (ż
) com as partes menos repetitivas (como',\nIf'
), novamente com listas de cordas compactadas; você pode ver como o meu funciona a partir da descrição.Bash , 99
Experimente online!
fonte
V ,
9987 bytes-12 bytes: Acontece que 2 substituições são mais curtas, o que é basicamente o mesmo que a solução de todos os outros (exceto Bubblegum?)
Experimente online!
fonte
Python 3 ,
120117116 bytesAs seqüências de formato eram mais curtas que a adição (129 bytes) e uma junção (140 bytes) .
-3 graças a Jo King, -1 graças a Jonathan Allen
fonte
print
porexit
.Java (JDK) , 123 bytes
Experimente online!
fonte
Galho, 105 bytes
Isso usa uma substituição simples para preencher as lacunas.
O
replace()
filtro do Twig permite definir os valores a serem substituídos como as chaves de um hash. Felizmente, ele também funciona com matrizes, pois elas têm teclas numéricas.O
|raw
é necessário para evitar escapar, que se transformouWhere's
emWhere's
.Você pode experimentá-lo em https://twigfiddle.com/phqpts
Como isso é compilado no PHP, o equivalente ao PHP seria:
O que pode ser reduzido significativamente.
fonte
Ruby , 104 bytes
Experimente online!
fonte
/// , 86 bytes
Experimente online!
fonte
C (gcc) , 123 bytes
Experimente online!
fonte
Limpo , 166 bytes
Experimente online!
fonte
sed ,
101100 bytesExperimente online!
-1 byte graças a @DigitalTrauma
fonte
.*
por^
para salvar um bytejq, 110 caracteres
(Código de 106 caracteres + opções de linha de comando de 4 caracteres)
Exemplo de execução:
Experimente online!
fonte
SQL Server, 211
db <> violino
fonte
declare
; use uma quebra de linha real na cadeia de caracteres em vez dechar(10)
, na verdade, você pode colocar as quebras de linha diretamente naprint
instrução e eliminar@c
completamente. Escolha a sua variável e uso mais usado@
por si só (o seu válido!)Stax ,
6056 bytesExecute e depure
fonte
"i am. Am i. If i am, Where's them i?"
Não consigo parar de rir. Isto é ouro.T-SQL, 137 bytes
Esse último retorno antes de
FROM
ser apenas para legibilidade, o restante faz parte da concatenação de strings.Método diferente da solução SQL da SeanC .
fonte
Kotlin , 150 bytes
Experimente online!
fonte
Retina 0.8.2 , 85 bytes
Experimente online! A mesma ideia que todos os outros.
fonte
Vermelho , 116 bytes
Experimente online!
Explicação:
O trabalho é realizado pela
rejoin
função, que reduz e une um bloco de valores.fonte
J , 121 bytes
Experimente online!
fonte
PHP , 107 bytes
Experimente online!
fonte
<?=$a=...," a",$b=...,...
05AB1E ,
78767472 bytesExperimente online.
Explicação:
Veja esta minha dica 05AB1E para entender o porquê:
’0 a1.\nA10.\nIf0 a1,\nW€Î's €€10?’
é"0 a1.\nA10.\nIf0 a1,\nWhere's the10?"
.•1~¼ ¿•
é"pickled"
“±æ€‚ ÿÇì“
é"neck of ÿ pepper"
„íδŒ
é"peter pipe"
„r¾Ð
é"r picked"
fonte
Haskell , 132 bytes
Experimente online!
fonte
C # (.NET Core) ,
123118116 bytesExperimente online!
Inspirado na resposta em java de @Olivier Grégoire
5 bytes salvos por @sebbs
fonte
PHP , 102 bytes
Basicamente, basta alterar as palavras ou frases do repetidor com números e, em seguida, aplicar php-strtr
Experimente online!
Ou
PHP , 144 bytes
Experimente online!
fonte
Powershell,
99101 bytesfonte
the $b
torna seu envio mais longo e inválido ( TIO ).[...]Peter Piper picked?
no final da sua saída.