Многие люди на этом сайте используют эзотерические языки , и, поскольку эти языки необычны и трудны для понимания, они часто пишут объяснения в определенном формате. Например, если код
abcdefghijklmnop
И эти языки используют #
для комментариев, они написали бы объяснение так:
a #Explanation of what 'a' does
bc #Bc
d #d
e #Explanation of e
fgh #foobar
ij #hello world
k #etc.
l #so on
mn #and
op #so forth
Я тоже часто это делаю, но каждый раз, когда я делаю это, я чувствую, что создание макета текста действительно неприятно и отнимает много времени. Поэтому я хочу, чтобы вы создали для меня «Esolang-Comment-Template-Generator». Например, если мы игнорируем комментарии, предыдущий код имеет этот шаблон:
a #
bc #
d #
e #
fgh #
ij #
k #
l #
mn #
op #
Соревнование:
Вы должны написать программу или функцию, которая принимает в качестве входных данных две строки и выводит этот «Esolang-Comment-Template». Первым вводом будет код, но со штрихами ( |
), вставленными туда, куда идут новые строки. Второй вход - то, что мы будем использовать для комментариев. Так что наш последний пример будет иметь это для ввода:
"a|bc|d|e|fgh|ij|k|l|mn|op", "#"
К сожалению, это исключает использование баров как часть ввода кода, но это нормально. Вы можете предположить, что ввод комментария будет одним символом. Ради простоты, символ комментария не будет панелью. Введенный код будет содержать только печатный ASCII и не будет содержать никаких новых строк.
Надеюсь, вы можете сделать вывод, что делать из тестовых случаев, но я постараюсь прояснить некоторые вещи.
Вы должны разделить ввод кода на «секции кода» на каждой панели. Затем каждая часть кода выводится в отдельной строке и дополняется слева до длины всего предыдущего кода (не считая столбцов). Затем каждая строка дополняется справа пробелами, чтобы последние два символа в каждой строке были «Один дополнительный пробел» + «Символ комментария».
Один завершающий перевод строки разрешен.
Вот еще один пример. Для ввода
"Hello|World", "/"
Первый раздел кода является «Hello» , а второй «Мир». Таким образом, он должен дать вывод:
Hello /
World /
Вот еще несколько примеров:
Input:
"a|b|c|d|e|f|g", ","
Output:
a ,
b ,
c ,
d ,
e ,
f ,
g ,
Input:
"abcdefg", ":"
Output:
abcdefg :
Input:
"4|8|15|16|23|42", "%"
Output:
4 %
8 %
15 %
16 %
23 %
42 %
Input:
"E|ac|h s|ecti|on is| one c|haracte|r longer| than the| last!", "!"
Output:
E !
ac !
h s !
ecti !
on is !
one c !
haracte !
r longer !
than the !
last! !
Input:
"This|Code|has||empty||sections", "@"
Output:
This @
Code @
has @
@
empty @
@
sections @
Правила:
Вы можете использовать эти входы и выходы в любом разумном формате. Например, чтение / запись файла, STDIN / STOUT, аргументы функции / возвращаемое значение и т. Д. Как обычно, это код-гольф , поэтому постарайтесь сделать свой код максимально коротким, и вы выиграете, если сможете найти самое короткое решение на вашем языке! Я также выберу самое короткое решение в качестве победителя. Стандартные лазейки запрещены.
|
персонажа, был бы
|
)?