Dengan teks yang diberikan di bawah ini, ada beberapa kata dalam teks yang berulang beberapa kali dalam teks. Gunakan bahasa pemrograman apa pun untuk menulis kode pendek yang memampatkan teks untuk menampilkannya. Atau dengan kata lain, gunakan jumlah byte terkecil untuk menampilkan teks.
Teksnya adalah:
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
sumber
sumber
Jawaban:
R , 106 byte
Cobalah online!
sumber
Jelly ,
80 73 72 68 67 6157 byteCobalah online!
Bagaimana?
sumber
Bubblegum ,
7371 byteCobalah online!
sumber
gzip
pada tingkat kompresi tertinggi (-9
) ditambah beberapa pencukuran metadata menggunakanhead
dantail
, byter 71 dihasilkan menggunakan zopfli, yang awalnya saya lupa. Zopfli biasanya membuat aliran DEFLATE yang lebih pendek.JavaScript (SpiderMonkey) , 114 byte
Cobalah online!
Saya akan mengklaim jawaban ini dari ovs , bagaimanapun, 19 byte disimpan.
Terima kasih Arnauld , menghemat 3 byte.
sumber
Python 2 , 115 byte
Cobalah online!
Mencetak beberapa string yang dipisahkan koma untuk menempatkan spasi di antaranya.
Python 3 , 115 byte
Cobalah online!
Python 3
translate
melakukan angkat berat. Menggunakan karakter yang tidak dapat dicetak dengan nilai ASCII satu digit harus menghemat dua byte.sumber
exit
menghemat 1 byte untuk program Python 3.Jelly ,
64605857 byteCobalah online!
sumber
“...“...»
) untuk membentuk sebagian besar dari empat baris dan kemudian interleaving (ż
) dengan bagian-bagian yang kurang berulang (seperti',\nIf'
), lagi dengan daftar string terkompresi; Anda dapat melihat cara kerja saya dari deskripsi.Bash , 99
Cobalah online!
sumber
V ,
9987 byte-12 byte: ternyata 2 substitusi lebih pendek yang pada dasarnya sama dengan solusi orang lain (kecuali Bubblegum?)
Cobalah online!
sumber
Python 3 ,
120117116 byteFormat string lebih pendek dari penambahan (129 byte) dan gabungan (140 byte) .
-3 Terima kasih kepada Jo King, -1 terima kasih kepada Jonathan Allen
sumber
print
denganexit
.Java (JDK) , 123 byte
Cobalah online!
sumber
Ranting, 105 byte
Ini menggunakan pengganti sederhana untuk mengisi kekosongan.
replace()
Filter Twig memungkinkan Anda untuk menentukan nilai yang akan diganti sebagai kunci hash. Untungnya, ini juga berfungsi dengan array, karena mereka memiliki kunci numerik.The
|raw
diperlukan untuk menghindari melarikan diri, yang ternyataWhere's
menjadiWhere's
.Anda dapat mencobanya di https://twigfiddle.com/phqpts
Karena ini dikompilasi ke PHP, padanan untuk PHP adalah:
Yang dapat dipersingkat secara signifikan.
sumber
Ruby , 104 byte
Cobalah online!
sumber
/// , 86 byte
Cobalah online!
sumber
C (gcc) , 123 byte
Cobalah online!
sumber
Bersih , 166 byte
Cobalah online!
sumber
sed ,
101100 byteCobalah online!
-1 byte terima kasih kepada @DigitalTrauma
sumber
.*
dengan^
untuk menyimpan bytejq, 110 karakter
(106 karakter kode + 4 opsi opsi baris perintah)
Contoh dijalankan:
Cobalah online!
sumber
SQL Server, 211
db <> biola
sumber
declare
; gunakan pemecah baris aktual dalam string sebagai gantichar(10)
, pada kenyataannya Anda bisa menempatkan pemecah baris secara langsung dalamprint
pernyataan dan menghilangkan@c
seluruhnya. Pilih variabel yang paling sering Anda gunakan dan gunakan@
sendiri (valid!)Stax ,
6056 byteJalankan dan debug itu
sumber
"i am. Am i. If i am, Where's them i?"
Saya tidak bisa berhenti tertawa. Ini emas.T-SQL, 137 byte
Pengembalian terakhir sebelum
FROM
hanya untuk dibaca, sisanya adalah bagian dari rangkaian string.Metode yang berbeda dari solusi SQL SeanC .
sumber
Kotlin , 150 byte
Cobalah online!
sumber
Retina 0.8.2 , 85 byte
Cobalah online! Gagasan yang sama seperti orang lain.
sumber
Merah , 116 byte
Cobalah online!
Penjelasan:
Pekerjaan itu dilakukan oleh fungsi
rejoin
, yang mengurangi dan bergabung dengan blok nilai.sumber
J , 121 byte
Cobalah online!
sumber
PHP , 107 byte
Cobalah online!
sumber
<?=$a=...," a",$b=...,...
05AB1E ,
78767472 byteCobalah online.
Penjelasan:
Lihat tip tambang 05AB1E ini untuk memahami alasannya:
’0 a1.\nA10.\nIf0 a1,\nW€Î's €€10?’
adalah"0 a1.\nA10.\nIf0 a1,\nWhere's the10?"
.•1~¼ ¿•
adalah"pickled"
“±æ€‚ ÿÇì“
adalah"neck of ÿ pepper"
„íδŒ
adalah"peter pipe"
„r¾Ð
adalah"r picked"
sumber
Haskell , 132 byte
Cobalah online!
sumber
C # (.NET Core) ,
123118116 byteCobalah online!
Terinspirasi oleh jawaban java @Olivier Grégoire
5 byte disimpan oleh @sebbs
sumber
PHP , 102 byte
Pada dasarnya hanya mengubah kata atau kalimat pengulang dengan angka, dan kemudian menerapkan php-strtr
Cobalah online!
Atau
PHP , 144 byte
Cobalah online!
sumber
Powershell,
99101 bytesumber
the $b
membuat kiriman Anda lebih panjang dan tidak valid ( TIO ).[...]Peter Piper picked?
akhir.