W podanym tekście poniżej jest kilka słów w tekście, które powtarzają się kilka razy w tekście. Użyj dowolnego języka programowania, aby napisać krótki kod, który kompresuje tekst, aby go wyświetlić. Innymi słowy, użyj najmniejszej liczby bajtów, aby wyświetlić tekst.
Tekst jest:
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
źródło
źródło
Odpowiedzi:
R , 106 bajtów
Wypróbuj online!
źródło
Galaretka ,
80 73 72 68 67 6157 bajtówWypróbuj online!
W jaki sposób?
źródło
Bubblegum ,
7371 bajtówWypróbuj online!
źródło
gzip
najwyższego poziomu kompresji (-9
) plus niektóre golenie metadanych przy użyciuhead
itail
, a 71 bajtów jest generowany przy użyciu zopfli, o którym początkowo zapomniałem. Zopfli zwykle tworzy krótsze strumienie DEFLATE.JavaScript (SpiderMonkey) , 114 bajtów
Wypróbuj online!
Twierdziłbym, że ta odpowiedź pochodzi od ovs , w każdym razie zapisano 19 bajtów.
Dzięki Arnauld , oszczędza 3 bajty.
źródło
Python 2 , 115 bajtów
Wypróbuj online!
Drukuje wiele ciągów oddzielonych przecinkami, aby wstawiać spacje między nimi.
Python 3 , 115 bajtów
Wypróbuj online!
Python 3
translate
wykonuje ciężkie podnoszenie. Używanie niedrukowalnych znaków o jednocyfrowej wartości ASCII powinno oszczędzić dwa bajty.źródło
exit
zapisuje 1 bajt dla programu Python 3.Galaretka ,
64605857 bajtówWypróbuj online!
źródło
“...“...»
), aby utworzyć większość czterech linii, a następnie przeplata (ż
) z mniej powtarzalnymi częściami (jak',\nIf'
), ponownie z listami skompresowanych ciągów; możesz zobaczyć, jak działa mój z opisu.Bash , 99
Wypróbuj online!
źródło
V ,
9987 bajtów-12 bajtów: okazuje się, że 2 podstawienia są krótsze, co w zasadzie jest takie samo jak rozwiązanie wszystkich innych (oprócz Bubblegum?)
Wypróbuj online!
źródło
Python 3 ,
120117116 bajtówCiągi formatujące były krótsze niż dodawanie (129 bajtów) i a łączenie (140 bajtów) .
-3 dzięki Jo King, -1 dzięki Jonathan Allen
źródło
print
jeexit
.Java (JDK) , 123 bajty
Wypróbuj online!
źródło
Gałązka, 105 bajtów
Wykorzystuje to prostą zamianę do uzupełnienia braków.
replace()
Filtr Twiga pozwala zdefiniować wartości do zastąpienia jako klucze skrótu. Na szczęście działa również z tablicami, ponieważ mają one klawisze numeryczne.|raw
Jest potrzebne, aby uniknąć ucieczki, która okazałaWhere's
sięWhere's
.Możesz spróbować na https://twigfiddle.com/phqpts
Ponieważ jest to skompilowane do PHP, odpowiednikiem dla PHP byłoby:
Który można znacznie skrócić.
źródło
Rubinowy , 104 bajty
Wypróbuj online!
źródło
/// , 86 bajtów
Wypróbuj online!
źródło
C (gcc) , 123 bajty
Wypróbuj online!
źródło
Czysty , 166 bajtów
Wypróbuj online!
źródło
sed ,
101100 bajtówWypróbuj online!
-1 bajt dzięki @DigitalTrauma
źródło
.*
się^
zapisać bajtjq, 110 znaków
(Kod 106 znaków + 4 znaki opcji wiersza poleceń)
Przykładowy przebieg:
Wypróbuj online!
źródło
SQL Server, 211
skrzypce db <>
źródło
declare
; zamiast tego użyj rzeczywistego podziału wierszachar(10)
, w rzeczywistości możesz wstawić podział wiersza bezpośrednio wprint
instrukcji i@c
całkowicie go wyeliminować . Wybierz najczęściej używaną zmienną i użyj@
jej samodzielnie (jest poprawna!)Stax ,
6056 bajtówUruchom i debuguj
źródło
"i am. Am i. If i am, Where's them i?"
Nie mogę przestać się śmiać. To jest złoto.T-SQL, 137 bajtów
Ten ostatni powrót przed
FROM
jest tylko do odczytu, reszta jest częścią konkatenacji łańcucha.Inna metoda niż rozwiązanie SQL SeanC .
źródło
Kotlin , 150 bajtów
Wypróbuj online!
źródło
Retina 0.8.2 , 85 bajtów
Wypróbuj online! Ten sam pomysł jak wszyscy inni.
źródło
Czerwony , 116 bajtów
Wypróbuj online!
Wyjaśnienie:
Zadanie wykonuje funkcja
rejoin
, która zmniejsza i dołącza do bloku wartości.źródło
J , 121 bajtów
Wypróbuj online!
źródło
PHP, 107 bytes
Try it online!
źródło
<?=$a=...," a",$b=...,...
05AB1E,
78767472 bytesTry it online.
Explanation:
See this 05AB1E tip of mine to understand why:
’0 a1.\nA10.\nIf0 a1,\nW€Î's €€10?’
is"0 a1.\nA10.\nIf0 a1,\nWhere's the10?"
.•1~¼ ¿•
is"pickled"
“±æ€‚ ÿÇì“
is"neck of ÿ pepper"
„íδŒ
is"peter pipe"
„r¾Ð
is"r picked"
źródło
Haskell, 132 bytes
Try it online!
źródło
C# (.NET Core),
123118116 bytesTry it online!
Inspired by @Olivier Grégoire's java answer
5 bytes saved by @sebbs
źródło
PHP, 102 bytes
Basically just change the repeater words or sentences with numbers, and then apply php-strtr
Try it online!
Or
PHP, 144 bytes
Try it online!
źródło
Powershell,
99101 bytesźródło
the $b
makes your submission both longer and invalid (TIO).[...]Peter Piper picked?
at your output's end.