Muitas pessoas neste site usam idiomas esotéricos e, como são incomuns e difíceis de entender, frequentemente escrevem uma explicação em um determinado formato. Por exemplo, se o código foi
abcdefghijklmnop
E essa linguagem usa #
para comentários, eles escreveriam uma explicação como esta:
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
Também faço isso com frequência, mas toda vez que faço isso, sinto que criar o layout do texto é realmente desagradável e demorado. Então, eu quero que você crie um "Esolang-Comment-Template-Generator" para mim. Por exemplo, se ignorarmos os comentários, o código anterior terá este modelo:
a #
bc #
d #
e #
fgh #
ij #
k #
l #
mn #
op #
O desafio:
Você deve escrever um programa ou função que use duas seqüências de caracteres como entrada e produz esse "Modelo de comentário de esolang". A primeira entrada será o código, mas com as barras ( |
) inseridas onde as novas linhas vão. A segunda entrada é o que usaremos para comentários. Portanto, nosso último exemplo teria isso como entrada:
"a|bc|d|e|fgh|ij|k|l|mn|op", "#"
Infelizmente, isso exclui as barras de fazer parte da entrada de código, mas tudo bem. Você pode assumir que a entrada do comentário será um único caractere. Por uma questão de simplicidade, o caractere de comentário não será um bar. A entrada de código conterá apenas ASCII imprimível e não conterá novas linhas.
Espero que você possa deduzir o que fazer nos casos de teste, mas tentarei esclarecer algumas coisas.
Você deve dividir o código inserido em "seções de código" em todas as barras. Em seguida, cada seção do código é emitida em sua própria linha e preenchida à esquerda com o comprimento de todo o código anterior (sem incluir as barras). Em seguida, cada linha é preenchida com o botão direito com espaços suficientes para que os dois últimos caracteres em cada linha sejam "Um espaço adicional" + "O caractere de comentário".
Uma nova linha à direita é permitida.
Aqui está outro exemplo. Para a entrada
"Hello|World", "/"
A primeira seção do código é "Olá" e a segunda é "Mundo". Portanto, deve dar a saída:
Hello /
World /
Aqui estão mais algumas amostras:
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 @
Regras:
Você pode levar essas entradas e saídas em qualquer formato razoável. Por exemplo, lendo / gravando um arquivo, STDIN / STOUT, argumentos de função / valor de retorno, etc. Como de costume, isso é código-golfe , portanto, tente tornar seu código o mais curto possível e você ganha se conseguir a solução mais curta. na sua língua! Também selecionarei a solução mais curta como o vencedor geral. As brechas padrão são proibidas.
|
personagem seria bom, para que possa explicar-se
|
)?