Beaucoup de personnes sur ce site utilisent des langages ésotériques , et comme ces langages sont inhabituels et difficiles à comprendre, ils écriront souvent une explication dans un certain format. Par exemple, si le code était
abcdefghijklmnop
Et cette langue utilise #
pour les commentaires, ils écriraient une explication comme celle-ci:
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
Je le fais souvent aussi, mais chaque fois que je le fais, j'ai l'impression que créer une mise en page de texte est vraiment désagréable et prend du temps. Je souhaite donc que vous créiez un "Générateur de modèles de commentaires" pour moi. Par exemple, si nous ignorons les commentaires, le code précédent contient ce modèle:
a #
bc #
d #
e #
fgh #
ij #
k #
l #
mn #
op #
Le défi:
Vous devez écrire un programme ou une fonction prenant deux chaînes en entrée et générer ce "Esolang-Comment-Template". La première entrée sera le code, mais avec des barres ( |
) insérées à l'emplacement des nouvelles lignes. La deuxième entrée est ce que nous allons utiliser pour les commentaires. Donc, notre dernier exemple aurait ceci pour entrée:
"a|bc|d|e|fgh|ij|k|l|mn|op", "#"
Malheureusement, cela exclut les barres de la saisie de code, mais ce n'est pas grave. Vous pouvez supposer que le commentaire sera un seul caractère. Par souci de simplicité, le caractère de commentaire ne sera pas un obstacle. Le code saisi ne contiendra que du code ASCII imprimable et ne contiendra aucune nouvelle ligne.
J'espère que vous pourrez déduire quoi faire à partir des cas de test, mais je vais essayer de clarifier certaines choses.
Vous devez diviser le code saisi en "sections de code" sur chaque barre. Ensuite, chaque section de code est sortie sur sa propre ligne et complétée à gauche avec la longueur de tout le code précédent (sans les barres). Ensuite, chaque ligne est complétée à droite avec suffisamment d'espaces pour que les deux derniers caractères de chaque ligne soient "Un espace supplémentaire" + "Le caractère de commentaire".
Une nouvelle ligne est autorisée.
Voici un autre exemple. Pour l'entrée
"Hello|World", "/"
La première section de code est "Hello" et la seconde est "World". Donc, il devrait donner la sortie:
Hello /
World /
Voici quelques exemples supplémentaires:
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 @
Règles:
Vous pouvez prendre ces entrées et sorties dans n’importe quel format raisonnable. Par exemple, lire / écrire un fichier, STDIN / STOUT, arguments de fonction / renvoyer, etc. Comme d’habitude, il s’agit de code-golf , essayez donc de rendre votre code le plus court possible et vous gagnerez si vous pouvez obtenir la solution la plus courte. dans ta langue! Je choisirai également la solution la plus courte en tant que gagnant. Les échappatoires standard sont interdites.
|
personnage serait bien, alors vous pouvez vous expliquer
|
)?