Mucha gente en este sitio usa idiomas esotéricos , y dado que estos idiomas son inusuales y difíciles de entender, con frecuencia escriben una explicación en un formato determinado. Por ejemplo, si el código era
abcdefghijklmnop
Y este lenguaje usa #
para comentarios, escribirían una explicación 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
Con frecuencia también hago esto, pero cada vez que hago esto, siento que crear el diseño del texto es realmente desagradable y requiere mucho tiempo. Así que quiero que crees un "Esolang-Comment-Template-Generator" para mí. Por ejemplo, si ignoramos los comentarios, el código anterior tiene esta plantilla:
a #
bc #
d #
e #
fgh #
ij #
k #
l #
mn #
op #
El reto:
Debe escribir un programa o función que tome dos cadenas como entrada, y genere este "Esolang-Comment-Template". La primera entrada será el código, pero con barras ( |
) insertadas donde van las nuevas líneas. La segunda entrada es la que usaremos para los comentarios. Entonces nuestro último ejemplo tendría esto como entrada:
"a|bc|d|e|fgh|ij|k|l|mn|op", "#"
Desafortunadamente, esto excluye a las barras de ser parte de la entrada del código, pero está bien. Puede suponer que la entrada de comentarios será un solo carácter. Por simplicidad, el comentario char no será un bar. La entrada de código solo contendrá ASCII imprimible y no contendrá ninguna línea nueva.
Espero que pueda inferir qué hacer con los casos de prueba, pero intentaré aclarar algunas cosas.
Debe dividir la entrada de código en "secciones de código" en cada barra. Luego, cada sección de código se genera en su propia línea y se rellena a la izquierda con la longitud de todo el código anterior (sin incluir las barras). Luego, cada línea se rellena a la derecha con suficientes espacios para que los dos últimos caracteres de cada línea sean "Un espacio adicional" + "El carácter de comentario".
Se permite una nueva línea final.
Aquí hay otro ejemplo. Para la entrada
"Hello|World", "/"
La primera sección del código es "Hola" y la segunda es "Mundo". Entonces debería dar el resultado:
Hello /
World /
Aquí hay algunas muestras más:
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 @
Reglas:
Puede tomar estas entradas y salidas en cualquier formato razonable. Por ejemplo, leer / escribir un archivo, STDIN / STOUT, argumentos de función / valor de retorno, etc. Como de costumbre, esto es código-golf , así que trate de hacer su código lo más corto posible y ganará si puede obtener la solución más corta ¡en tu idioma! También seleccionaré la solución más corta como el ganador general. Las lagunas estándar están prohibidas.
|
carácter sería bueno, por lo que puede explicarse
|
)?