Mit dem angegebenen Text unten gibt es einige Wörter im Text, die mehrmals im Text wiederholt werden. Verwenden Sie eine beliebige Programmiersprache, um einen kurzen Code zu schreiben, der den Text komprimiert, um ihn anzuzeigen. Verwenden Sie mit anderen Worten die kleinste Anzahl von Bytes, um den Text anzuzeigen.
Der Text ist:
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
quelle
quelle
Antworten:
R , 106 Bytes
Probieren Sie es online!
quelle
Jelly ,
80 73 72 68 67 6157 BytesProbieren Sie es online!
Wie?
quelle
Bubblegum ,
7371 BytesProbieren Sie es online!
quelle
gzip
der höchsten Komprimierungsstufe (-9
) plus einigen Metadaten erstellt , die mithead
und rasierttail
wurden. Der 71-Byte-Code wird mit zopfli generiert, was ich anfangs vergessen habe. Zopfli erzeugt normalerweise kürzere DEFLATE-Streams.JavaScript (SpiderMonkey) , 114 Byte
Probieren Sie es online!
Ich würde behaupten, dass diese Antwort von Ovs stammt , auf jeden Fall wurden 19 Byte gespeichert.
Danke Arnauld , spart 3 Bytes.
quelle
Python 2 , 115 Bytes
Probieren Sie es online!
Druckt mehrere durch Kommas getrennte Zeichenfolgen, um Leerzeichen dazwischen einzufügen.
Python 3 , 115 Bytes
Probieren Sie es online!
Python 3
translate
macht das schwere Heben. Bei Verwendung von nicht druckbaren Zeichen mit einem einstelligen ASCII-Wert sollten zwei Bytes gespart werden.quelle
exit
Speichert 1 Byte für das Python 3-Programm.Jelly ,
64605857 BytesProbieren Sie es online!
quelle
“...“...»
), um die meisten der vier Zeilen zu bilden, und verschachtelt (ż
) dann mit den weniger sich wiederholenden Teilen (wie',\nIf'
), wiederum mit komprimierten String-Listen. Wie meins funktioniert, können Sie der Beschreibung entnehmen.Bash , 99
Probieren Sie es online!
quelle
V ,
9987 Bytes-12 Bytes: 2 Substitutionen sind kürzer als bei allen anderen (außer Bubblegum?)
Probieren Sie es online!
quelle
Python 3 ,
120117116 BytesFormatzeichenfolgen waren kürzer als Addition (129 Bytes) und Join (140 Bytes) .
-3 Dank an Jo King, -1 Dank an Jonathan Allen
quelle
print
mitexit
.Java (JDK) , 123 Byte
Probieren Sie es online!
quelle
Zweig, 105 Bytes
Dies nutzt einen einfachen Ersatz, um die Lücken zu füllen.
Mit dem Twig-
replace()
Filter können Sie die zu ersetzenden Werte als Schlüssel eines Hash definieren. Glücklicherweise funktioniert es auch mit Arrays, da diese über numerische Tasten verfügen.Der
|raw
wird benötigt, um ein Entkommen zu vermeiden, das sichWhere's
in einen verwandeltWhere's
.Sie können es unter https://twigfiddle.com/phqpts ausprobieren
Da dies bis auf PHP kompiliert ist, wäre das Äquivalent für PHP:
Welches kann deutlich verkürzt werden.
quelle
Rubin , 104 Bytes
Probieren Sie es online!
quelle
/// 86 Bytes
Probieren Sie es online!
quelle
C (gcc) , 123 Bytes
Probieren Sie es online!
quelle
Sauber , 166 Bytes
Probieren Sie es online!
quelle
sed ,
101100 bytesProbieren Sie es online!
-1 Byte dank @DigitalTrauma
quelle
.*
mit^
, um ein Byte zu speichernjq, 110 Zeichen
(106 Zeichen Code + 4 Zeichen Befehlszeilenoptionen)
Probelauf:
Probieren Sie es online!
quelle
SQL Server 211
db <> Geige
quelle
declare
. Verwenden Sie stattdessen einen tatsächlichen Zeilenumbruch in der Zeichenfolge.char(10)
Tatsächlich können Sie die Zeilenumbrüche direkt in dieprint
Anweisung einfügen und vollständig@c
entfernen. Wählen Sie Ihre am häufigsten verwendete Variable aus und verwenden Sie sie@
für sich (es ist gültig!)Stax ,
6056 BytesFühren Sie es aus und debuggen Sie es
quelle
"i am. Am i. If i am, Where's them i?"
Ich kann nicht aufhören zu lachen. Das ist Gold.T-SQL, 137 Bytes
Die letzte Rückkehr vor dem
FROM
dient nur der Lesbarkeit, der Rest ist Teil der String-Verkettung.Andere Methode als die SQL-Lösung von SeanC .
quelle
Kotlin , 150 Bytes
Probieren Sie es online!
quelle
Retina 0,8,2 , 85 Bytes
Probieren Sie es online! Gleiche Idee wie alle anderen.
quelle
Rot , 116 Bytes
Probieren Sie es online!
Erläuterung:
Die Aufgabe
rejoin
übernimmt die Funktion, die einen Werteblock verkleinert und zusammenfügt.quelle
J , 121 Bytes
Probieren Sie es online!
quelle
PHP , 107 Bytes
Probieren Sie es online!
quelle
<?=$a=...," a",$b=...,...
05AB1E ,
78767472 BytesProbieren Sie es online aus.
Erläuterung:
Sehen Sie sich meinen Tipp 05AB1E an, um zu verstehen, warum:
’0 a1.\nA10.\nIf0 a1,\nW€Î's €€10?’
ist"0 a1.\nA10.\nIf0 a1,\nWhere's the10?"
.•1~¼ ¿•
ist"pickled"
“±æ€‚ ÿÇì“
ist"neck of ÿ pepper"
„íδŒ
ist"peter pipe"
„r¾Ð
ist"r picked"
quelle
Haskell , 132 Bytes
Probieren Sie es online!
quelle
C # (.NET Core) ,
123118116 BytesProbieren Sie es online!
Inspiriert von der Java-Antwort von @Olivier Grégoire
5 Bytes von @sebbs gespeichert
quelle
PHP , 102 Bytes
Ändern Sie einfach die Repeater-Wörter oder -Sätze durch Zahlen und wenden Sie dann php-strtr an
Probieren Sie es online!
Oder
PHP , 144 Bytes
Probieren Sie es online!
quelle
Powershell,
99101 Bytesquelle
the $b
sieht so aus, als würde das Leerzeichen in Ihrem Beitrag sowohl länger als auch ungültig ( TIO ).[...]Peter Piper picked?
am Ende Ihrer Ausgabe haben.