При использовании разметки, как в сети SE, отступ в четыре пробела перед строкой текста обозначает ее как часть блока кода, как я надеюсь, вы знаете. Если вы этого не сделаете, вот пример (с .
представлением пробела):
.... код
.... больше код
результаты в
Code
More code
Проблема в том, что когда вы копируете и вставляете код в ответ, вам нужно делать отступ каждой строки вручную. Это особенно сложно при работе с кодом без кода, поскольку он, вероятно, уже имеет отступ и может вызвать путаницу. Вы можете просто выбрать свой код и нажать Ctrl + K
, оказывается. Часы моей жизни впустую без причины ...
Итак, ваша цель, учитывая ввод, вернуть его с четырьмя пробелами перед каждой строкой. В духе экономии времени при вставке копии вы должны обрабатывать весь ввод как одну строку (при условии, что ваш язык может ее анализировать). Если ваш язык не может обработать символ (например, новые строки) в строках, вы можете предположить, что он обозначается / экранируется с помощью другого метода, поддерживаемого языком; однако выходные данные должны выводить каждую строку в отдельной строке (поэтому не нужно передавать что-то подобное ....foo\n....bar
).
Стандартные лазейки не допускаются. Поскольку это код-гольф , выигрывает самый короткий ответ в байтах. Удачи!
источник
Ctrl + K
Ответы:
V , 4 байта
Попробуйте онлайн!
(Обратите внимание на завершающий пробел)
V кодируется в Latin1, где это кодируется так:
объяснение
Вот решение, которое также составляет 4 байта в UTF-8!
источник
4ñ>G
Crayon , 7 байтов
Попробуйте онлайн!
объяснение
Crayon - это стековый язык, предназначенный для создания ASCII-арта. Он все еще находится на ранней стадии разработки, но он знает достаточно, чтобы завершить эту задачу с довольно низким количеством байтов:
Рисование неразрывного пробела необходимо, потому что Crayon автоматически обрезает вывод в прямоугольник, поэтому без NBSP он просто напечатает исходный ввод.
источник
Сетчатка , 8 байт
Попробуйте онлайн!
На второй строке четыре пробела. Альтернативные решения используют либо
m`^
или,%1`
либо1%`
в первой строке. Все они соответствуют позиции в начале каждой строки и заменяют ее четырьмя пробелами.источник
Чеддер, 31 байт
Действительно просто, но я написал, потому что это демонстрирует новые функциональные операторы.
(" ":+)
так же, какA -> " " + A
. (т.е.+
оп как функция с" "
привязкой к LHS).Я не думаю, что даже нуждается в объяснении
источник
:
, возникли бы проблемы с?:
:
нет совпадений?
, парсер выберет его для функциональной операции. Это все еще требует, чтобы функциональная:+)
@
значит?Python ,
4439 байтВычеркнуто 44 & NBSP; больше не 44 :)
-5 байт благодаря ovs (избегайте удаления с предприставкой)
Попробуйте онлайн!
источник
lambda s:' '*4+s.replace('\n','\n ')
39 байтlambda s:' '*4+s.replace('\n','\n ')[1:]
40 (что не работает) или что-то еще?lambda s:' '*4+s.replace('\n','\n<4 spaces>')
TIOJavaScript, 26 байт
Спасибо @Conor O'Brien за игру в 8 байт
Заменить на регулярное выражение с / g заменяет все экземпляры. m заставляет регулярное выражение обрабатывать каждую строку отдельно для начала строки ^.
Попробуйте онлайн!
источник
asdf
повторяются снова и снова.x=>x.replace(/^|\n/g,"$& ")
первые строки и следующие строки за один разPython 2,
8745 байтВвод принимается как
'Line1\nLine2\nLine3...'
(необходимо цитаты)Спасибо @WheatWizard за предоставленную мне идею, которая помогла мне сыграть в гольф 42 байта.
источник
Ctrl + K
, реальные причины предлагаемого вызова были ... меньше, чем просто чистая загадка.^
на ``.Желе , 8 байт
Попробуйте онлайн!
Как?
Некоторые другие 8-байтовые варианты:
Ỵṭ€⁶Yµ4¡
(4 повторения разбиения на новых строках, вставьте один пробел);⁶ḤḤ;ЀỴY
(удвоение в два раза похоже на умножение на 4,Ѐ
сопоставление с правильным аргументом, поэтому мы можем объединять вместо привязки);и другие их перестановки.
источник
Emacs, 5 брелоков, 5 байт
По крайней мере, в одной обычно используемой кодировке для ввода с клавиатуры каждая из этих цепочек ключей представляет собой один байт:
18 68 b4 18 09
. Записи в Emacs, как правило, очень тяжелы для ключей, так как каждый печатный символ ASCII обозначает себя, за исключением последующего символа многосимвольной команды (это означает, что только действующие команды могут использоваться только для ключей).Я не уверен, как это сравнивается с Vim (в отличие от V). Но Vim довольно широко используется в PPCG, и поэтому я подумал, что другая сторона войн редакторов также заслуживает своего времени в центре внимания.
Это предполагает, что ввод / вывод осуществляется через буфер (эквивалент нормальных соглашений ввода / вывода для vim) или берется из файла и выводится на экран (что аналогично). Если вместо этого вы выполняете ввод-вывод через регион, что является естественным для некоторых форм программы, вы можете удалить два первых символа, чтобы получить оценку 3 байта; Однако я не думаю, что это соответствует правилам PPCG.
объяснение
Последнее встроенное здесь, конечно, невероятно полезно для этой задачи; остальное просто структура.
источник
PowerShell,
2928 байт-1 Благодаря fergusq, используя реальный перевод строки вместо `n
принимает
"$args"
входные данные в виде строки (приведенной с использованием "s") и-split
помещает ее на новую строку , затем%{}
перебирает ( ) через нее, добавляя четыре пробела (" "*4
) и строка ($_
) затем выводит ее неявно.источник
Pyth, 10 байт
Попытайся!
Если бы вход в виде списка строк был разрешен, я мог бы сделать это в 7 байтов:
Попробуй это
более длинные решения:
12 байт:
12 байт:
13 байт:
источник
jbm*4\ .z
d
, упс. В любом случае, ваш 10-байтный ответ - это то, к чему яРёда , 21 байт
Попробуйте онлайн!
Это анонимная функция. Вход извлекается из потока.
Объяснение:
источник
identity()
просто вытащить все значения из STDIN?identity
извлекает значения из входного потока и передает их в выходной поток. Это идентичноpush(x) for x
.Perl 5 , 11 + 1 = 12 байт
11 байт кода +
-p
флаг.Попробуйте онлайн!
На этот раз объяснения будут короткими: регулярное выражение заменяет каждое начало строки (в
^
сочетании с/m
модификатором) на четыре пробела - конец.источник
Perl 6 , 11 байт
Попытайся
Expanded:
источник
sed ,
16109 байтПопробуйте онлайн!
Правки
Уменьшен размер решения с 16 до 10 байт благодаря Kritixi Lithos .
-1 байт благодаря сешумаре .
источник
-r
флаг (1 байт), так что вы можете удалить обратную косую черту перед скобками.s/.*/ &/
(удалить скобки и заменить\1
с&
)*
.s:^: :
, для 9 байтов.Java 7, 58 байт
Объяснение:
Попробуй это здесь.
источник
replaceAll
.replace
и другое.replaceAll
заменит все найденные строки с заменой..replace
используется для буквенных строк и.replaceAll
регулярных выражений. Поскольку\n
это не регулярное выражение, его.replace
можно без проблем использовать для замены всех новых строк на новую строку + четыре пробела, что вы также можете проверить по ссылке «Попробуй», которую я предоставил.Brain-Flak ,
109103 байта-6 благодаря Мастеру Пшеницы
Включает +1 для
-c
Попробуйте онлайн!
источник
PHP, 43 байта
источник
С накоплением , 13 байтов
Попробуйте онлайн!
объяснение
источник
Октава, 17 байт
Попробуйте онлайн!
источник
MATL , 12 байт
Ввод - это строка с символами новой строки. Чтобы ввести это, вам нужно объединить символ 10 между обычными символами для представления новой строки (квадратные скобки являются конкатенацией):
Попробуйте это в MATL онлайн!
объяснение
источник
PHP, 16
беги с
php -R <code>
.-R
запускает данный код для каждой строки ввода и$argn
получает текущую строку ввода. Так что это просто печатает каждую строку с дополнительными четырьмя пробелами перед ней.источник
V , 3 байта (не конкурирует)
В этом ответе используется функция, которую я планировал добавить некоторое время, но только что нашел способ добавить сегодня. Это делает этот ответ неконкурентным и недействительным для победы. Но все же здорово показать такую полезную / конкурентоспособную особенность!
Попробуйте онлайн!
Объяснение:
источник
Vim, 6 нажатий клавиш
Предполагается, что курсор находится в начале файла, как если бы вы открывали файл из командной строки с помощью
vim filename
.С ВИМ настроен для использования 4 пробела для отступа было бы 2 нажатия клавиш:
>G
.источник
ZZ
в конце. Обычно отправка vim - это просто вывод в буфер, а не в файл.ZZ
тогда.Japt ,
76 байтСохранено 1 байт благодаря @ETHproductions
Попробуйте онлайн!
Объяснение:
источник
S²²
будет работать на местеSp4
, а не то, что это спасет вас в этом случае. Говоря об этом, я думаю, что вы можете просто сделать,miS²²R
чтобы удалитьR
флаг (в основномmiS²²
, но разделить на новые строки заранее и присоединиться с новыми строками позже)UberGenes , 62 байта
Мне пришлось вступить в эту проблему с UberGenes, так как очень похожая программа (в которую вставлен только один пробел) была одной из первых программ, которые я когда-либо писал на языке, и казалось, что ее будет легко изменить для этой цели.
Как это устроено:
источник
CJam , 11 байт
Благодаря @ Challenger5 за исправление
Попробуйте онлайн!
объяснение
источник
abc\n\ndef
. Возвращается,....abc\n....def
потому что%
отбрасывает пустые элементы. Вы хотите использовать/
вместо разделения, потому что он сохраняет пустые элементы.J-uby ,
1716 байтобъяснение
Это прямо переводит на (в Ruby):
источник
На самом деле , 16 байтов
Попробуйте онлайн!
Объяснение:
источник
C
6665 байтПопробуйте онлайн!
источник
s;char*l;f(){while(getline(&l,&s,stdin)+1)printf("____%s",l);}
какими 62 байтами<stdio.h>
(из-заstdin
).