Viele Leute auf dieser Website verwenden esoterische Sprachen . Da diese Sprachen ungewöhnlich und schwer zu verstehen sind, werden sie häufig Erklärungen in einem bestimmten Format verfassen. Zum Beispiel, wenn der Code war
abcdefghijklmnop
Und diese Sprache verwendet #
für Kommentare eine Erklärung wie diese:
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
Ich mache das auch oft, aber jedes Mal, wenn ich das mache, habe ich das Gefühl, dass das Erstellen des Layouts von Text wirklich unangenehm und zeitaufwendig ist. Ich möchte, dass Sie einen "Esolang-Comment-Template-Generator" für mich erstellen. Wenn wir zum Beispiel die Kommentare ignorieren, hat der vorherige Code diese Vorlage:
a #
bc #
d #
e #
fgh #
ij #
k #
l #
mn #
op #
Die Herausforderung:
Sie müssen ein Programm oder eine Funktion schreiben, die zwei Zeichenfolgen als Eingabe verwendet und diese "Esolang-Kommentar-Vorlage" ausgibt. Die erste Eingabe ist der Code, jedoch mit |
eingefügten Strichen ( ) an der Stelle, an der sich die Zeilenumbrüche befinden. Die zweite Eingabe wird für Kommentare verwendet. Unser letztes Beispiel hätte also Folgendes für die Eingabe:
"a|bc|d|e|fgh|ij|k|l|mn|op", "#"
Dies schließt leider aus, dass Balken Teil der Codeeingabe sind, aber das ist in Ordnung. Sie können davon ausgehen, dass die Kommentareingabe ein einzelnes Zeichen ist. Der Einfachheit halber wird das Kommentarzeichen kein Balken sein. Die Codeeingabe enthält nur druckbares ASCII und keine Zeilenumbrüche.
Hoffentlich können Sie den Testfällen entnehmen, was zu tun ist, aber ich werde versuchen, einige Dinge zu klären.
Sie müssen die Codeeingabe auf jeder Leiste in "Code-Abschnitte" aufteilen. Dann wird jeder Codeabschnitt in einer eigenen Zeile ausgegeben und mit der Länge des gesamten vorherigen Codes (ohne die Striche) links aufgefüllt. Dann wird jede Zeile mit genügend Leerzeichen rechts aufgefüllt, so dass die letzten beiden Zeichen in jeder Zeile "Ein zusätzliches Leerzeichen" + "Das Kommentarzeichen" sind.
Eine nachgestellte Zeile ist zulässig.
Hier ist ein weiteres Beispiel. Für die Eingabe
"Hello|World", "/"
Der erste Abschnitt des Codes ist „Hallo“ und die zweite ist „Welt“. So sollte es die Ausgabe geben:
Hello /
World /
Hier sind noch einige Beispiele:
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 @
Regeln:
Sie können diese Ein- und Ausgaben in jedem vernünftigen Format verwenden. Zum Beispiel das Lesen / Schreiben einer Datei, STDIN / Stout, Funktionsargumente / Rückgabewert usw. Wie üblich, ist dies Code-Golf , so versuchen , Ihren Code so kurz wie möglich zu machen , und Sie gewinnen , wenn Sie die kürzeste Lösung bekommen in deiner Sprache! Ich werde auch die kürzeste Lösung als Gesamtsieger auswählen. Standardlücken sind verboten.
|
Charakter zu verwenden, wäre schön, so können Sie sich erklären
|
) sein?