Багато людей на цьому веб-сайті використовують езотеричні мови , і оскільки ці мови незвичні і важкі для розуміння, вони часто пишуть пояснення у певному форматі. Наприклад, якщо код був
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-коментар-генератор шаблонів". Наприклад, якщо ми ігноруємо коментарі, попередній код має цей шаблон:
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 /
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, аргументи функцій / повернення значення тощо. Як завжди, це код-гольф , тому постарайтеся зробити свій код якомога коротшим, і ви виграєте, якщо зможете отримати найкоротше рішення вашою мовою! Я також виберу найкоротше рішення як загального переможця. Стандартні лазівки заборонені.
|
символу, було б непогано, тож ви можете пояснити себе
|
)?