С данным текстом ниже, есть несколько слов в тексте, которые повторяются в тексте несколько раз. Используйте любой язык программирования, чтобы написать короткий код, который сжимает текст для его отображения. Или, другими словами, используйте наименьшее количество байтов для отображения текста.
Текст это:
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 , 106 байт
Попробуйте онлайн!
источник
Желе ,
80 73 72 68 67 6157 байтПопробуйте онлайн!
Как?
источник
Bubblegum ,
7371 байтПопробуйте онлайн!
источник
gzip
наивысшего уровня сжатия (-9
) и некоторого сброса метаданных с использованием,head
аtail
71 байт генерируется с использованием zopfli, о котором я изначально забыл. Zopfli обычно создает более короткие потоки DEFLATE.JavaScript (SpiderMonkey) , 114 байт
Попробуйте онлайн!
Я бы сказал , что этот ответ от ovs , так или иначе, 19 байтов сохранены.
Спасибо Арно , экономит 3 байта.
источник
Python 2 , 115 байт
Попробуйте онлайн!
Печатает несколько строк через запятую, чтобы между ними были пробелы.
Python 3 , 115 байт
Попробуйте онлайн!
Python 3
translate
делает тяжелую работу. Использование непечатаемых символов с однозначным значением ASCII должно сохранить два байта.источник
exit
сохраняет 1 байт для программы Python 3.Желе ,
64605857 байтПопробуйте онлайн!
источник
“...“...»
) для формирования большинства из четырех строк, а затем перемежает (ż
) с менее повторяющимися частями (например',\nIf'
), снова со списками сжатых строк; Вы можете увидеть, как моя работает из описания.Баш , 99
Попробуйте онлайн!
источник
V ,
9987 байтов-12 байт: получается, что 2 замены короче, что в основном совпадает с решением всех остальных (кроме Bubblegum?)
Попробуйте онлайн!
источник
Python 3 ,
120117116 байтСтроки формата были короче сложения (129 байт) и объединения (140 байт) .
-3 благодаря Джо Кингу, -1 благодаря Джонатану Аллену
источник
print
наexit
.Java (JDK) , 123 байта
Попробуйте онлайн!
источник
Веточка, 105 байт
Это использует простую замену, чтобы заполнить пробелы.
replace()
Фильтр Twig позволяет вам определять значения для замены в качестве ключей хеша. К счастью, он также работает с массивами, поскольку они имеют цифровые клавиши.|raw
Необходимо , чтобы избежать побега, которые оказалисьWhere's
вWhere's
.Вы можете попробовать это на https://twigfiddle.com/phqpts
Так как это скомпилировано в PHP, эквивалент для PHP будет:
Который может быть значительно сокращен.
источник
Рубин , 104 байта
Попробуйте онлайн!
источник
/// , 86 байт
Попробуйте онлайн!
источник
C (gcc) , 123 байта
Попробуйте онлайн!
источник
Чисто , 166 байт
Попробуйте онлайн!
источник
sed ,
101100 байтПопробуйте онлайн!
-1 байт благодаря @DigitalTrauma
источник
.*
с ,^
чтобы сохранить байтJQ, 110 символов
(106 символов кода + 4 символа параметров командной строки)
Образец прогона:
Попробуйте онлайн!
источник
SQL Server, 211
дб <> скрипка
источник
declare
; используйте вместо строки фактический разрыв строкиchar(10)
, фактически вы можете поместить разрывы строк непосредственно вprint
оператор и@c
полностью исключить их. Выберите наиболее часто используемую переменную и используйте@
ее самостоятельно (она действительна!)Stax ,
6056 байтЗапустите и отладьте его
источник
"i am. Am i. If i am, Where's them i?"
Я не могу перестать смеяться. Это золото.T-SQL, 137 байт
Это последнее возвращение перед
FROM
для читабельности, остальные являются частью конкатенации строк.Другой метод, чем SQL-решение SeanC .
источник
Котлин , 150 байт
Попробуйте онлайн!
источник
Сетчатка 0.8.2 , 85 байт
Попробуйте онлайн! Та же идея, что и у всех остальных.
источник
Красный , 116 байт
Попробуйте онлайн!
Объяснение:
Работа выполняется
rejoin
функцией, которая сокращает и объединяет блок значений.источник
J , 121 байт
Попробуйте онлайн!
источник
PHP , 107 байт
Попробуйте онлайн!
источник
<?=$a=...," a",$b=...,...
05AB1E ,
78767472 байтаПопробуйте онлайн.
Объяснение:
Посмотрите эту подсказку 05AB1E, чтобы понять, почему:
’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"
источник
Haskell , 132 байта
Попробуйте онлайн!
источник
C # (.NET Core) ,
123118116 байтПопробуйте онлайн!
Вдохновленный ответом Java Оливье Грегуара
5 байтов сохранено @sebbs
источник
PHP , 102 байта
В основном просто измените слова или предложения повторителя числами, а затем примените php-strtr
Попробуйте онлайн!
Или
PHP , 144 байта
Попробуйте онлайн!
источник
Powershell,
99101 байтисточник
the $b
делает ваше представление и дольше и недействительным ( TIO ).[...]Peter Piper picked?
в конце вашего выхода.