Avec le texte ci-dessous, il y a quelques mots dans le texte qui se répètent plusieurs fois dans le texte. Utilisez n'importe quel langage de programmation pour écrire un code court qui comprime le texte pour l'afficher. Ou en d'autres termes, utilisez le plus petit nombre d'octets pour afficher le texte.
Le texte est:
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
la source
la source
Réponses:
R , 106 octets
Essayez-le en ligne!
la source
Gelée ,
80 73 72 68 67 6157 octetsEssayez-le en ligne!
Comment?
la source
Bubblegum ,
7371 octetsEssayez-le en ligne!
la source
gzip
le niveau de compression le plus élevé (-9
) plus un rasage de métadonnées en utilisanthead
ettail
, le 71 octet est généré en utilisant zopfli, que j'ai initialement oublié. Zopfli crée généralement des flux DEFLATE plus courts.JavaScript (SpiderMonkey) , 114 octets
Essayez-le en ligne!
Je dirais que cette réponse est de ovs , de toute façon, 19 octets enregistrés.
Merci Arnauld , enregistre 3 octets.
la source
Python 2 , 115 octets
Essayez-le en ligne!
Imprime plusieurs chaînes séparées par des virgules pour mettre des espaces entre elles.
Python 3 , 115 octets
Essayez-le en ligne!
Python 3
translate
fait le gros du travail. L'utilisation de caractères non imprimables avec une valeur ASCII à un chiffre devrait économiser deux octets.la source
exit
enregistre 1 octet pour le programme Python 3.Gelée ,
64605857 octetsEssayez-le en ligne!
la source
“...“...»
) pour former la plupart des quatre lignes, puis entrelace (ż
) avec les parties les moins répétitives (comme',\nIf'
), toujours avec des listes de chaînes compressées; vous pouvez voir comment fonctionne la mienne dans la description.Frapper , 99
Essayez-le en ligne!
la source
V ,
9987 octets-12 octets: il s'avère que 2 substitutions sont plus courtes, ce qui est fondamentalement la même que la solution de tout le monde (sauf Bubblegum?)
Essayez-le en ligne!
la source
Python 3 ,
120117 117116 octetsLes chaînes de format étaient plus courtes que l' addition (129 octets) et une jointure (140 octets) .
-3 merci à Jo King, -1 merci à Jonathan Allen
la source
print
parexit
.Java (JDK) , 123 octets
Essayez-le en ligne!
la source
Brindille, 105 octets
Cela utilise un simple remplacement pour combler les lacunes.
Twig's
replace()
filtre vous permet de définir les valeurs à remplacer comme les clés d'un hachage. Heureusement, cela fonctionne également avec les tableaux, car ils ont des touches numériques.le
|raw
est nécessaire pour éviter de s'échapper, qui s'est transforméWhere's
enWhere's
.Vous pouvez l'essayer https://twigfiddle.com/phqpts
Étant donné que cela est compilé en PHP, l'équivalent pour PHP serait:
Ce qui peut être raccourci de manière significative.
la source
Rubis , 104 octets
Essayez-le en ligne!
la source
/// , 86 octets
Essayez-le en ligne!
la source
C (gcc) , 123 octets
Essayez-le en ligne!
la source
Nettoyer , 166 octets
Essayez-le en ligne!
la source
sed ,
101100 octetsEssayez-le en ligne!
-1 octet grâce à @DigitalTrauma
la source
.*
par^
pour enregistrer un octetjq, 110 caractères
(Code de 106 caractères + options de ligne de commande de 4 caractères)
Exemple d'exécution:
Essayez-le en ligne!
la source
SQL Server, 211
db <> violon
la source
declare
; utilisez un saut de ligne réel dans la chaîne au lieu dechar(10)
, en fait, vous pouvez placer les sauts de ligne directement dans l'print
instruction et les éliminer@c
complètement. Choisissez votre variable la plus utilisée et utilisez-la@
seule (c'est valable!)Stax ,
6056 octetsExécuter et déboguer
la source
"i am. Am i. If i am, Where's them i?"
Je ne peux pas m'arrêter de rire. C'est de l'or.T-SQL, 137 octets
Ce dernier retour avant le
FROM
est pour la lisibilité uniquement, les autres font partie de la concaténation de chaîne.Méthode différente de la solution SQL de SeanC .
la source
Kotlin , 150 octets
Essayez-le en ligne!
la source
Retina 0.8.2 , 85 octets
Essayez-le en ligne! Même idée que tout le monde.
la source
Rouge , 116 octets
Essayez-le en ligne!
Explication:
Le travail est effectué par la fonction
rejoin
, qui réduit et joint un bloc de valeurs.la source
J , 121 octets
Essayez-le en ligne!
la source
PHP , 107 octets
Essayez-le en ligne!
la source
<?=$a=...," a",$b=...,...
05AB1E ,
78767472 octetsEssayez-le en ligne.
Explication:
Consultez cette astuce 05AB1E pour comprendre pourquoi:
’0 a1.\nA10.\nIf0 a1,\nW€Î's €€10?’
est"0 a1.\nA10.\nIf0 a1,\nWhere's the10?"
.•1~¼ ¿•
est"pickled"
“±æ€‚ ÿÇì“
est"neck of ÿ pepper"
„íδŒ
est"peter pipe"
„r¾Ð
est"r picked"
la source
Haskell , 132 octets
Essayez-le en ligne!
la source
C # (.NET Core) ,
123118116 octetsEssayez-le en ligne!
Inspiré par la réponse java de @Olivier Grégoire
5 octets enregistrés par @sebbs
la source
PHP , 102 octets
Fondamentalement, il suffit de changer les mots ou les phrases du répétiteur avec des nombres, puis d'appliquer php-strtr
Essayez-le en ligne!
Ou
PHP , 144 octets
Essayez-le en ligne!
la source
Powershell,
99101 octetsla source
the $b
votre soumission soit à la fois plus long et invalide ( TIO ).[...]Peter Piper picked?
à la fin de votre sortie.