このサイトの多くの人々は難解な言語を使用しています。これらの言語は珍しく理解しにくいため、特定の形式で説明を書くことがよくあります。たとえば、コードが
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-Comment-Template-Generator」を作成してほしい。たとえば、コメントを無視する場合、前のコードには次のテンプレートがあります。
a #
bc #
d #
e #
fgh #
ij #
k #
l #
mn #
op #
挑戦:
入力として2つの文字列を受け取り、この「Esolang-Comment-Template」を出力するプログラムまたは関数を作成する必要があります。最初の入力はコードです|
が、改行のある場所にバー()が挿入されます。2番目の入力は、コメントに使用するものです。したがって、最後の例では入力にこれを使用します。
"a|bc|d|e|fgh|ij|k|l|mn|op", "#"
残念ながら、これはバーをコード入力の一部から除外しますが、それは問題ありません。コメント入力は単一の文字になると想定できます。簡単にするために、コメント文字はバーではありません。コード入力には印刷可能なASCIIのみが含まれ、改行は含まれません。
テストケースから何をすべきかを推測できることを願っていますが、いくつかのことを明確にしようとします。
入力したコードをすべてのバーの「コードセクション」に分割する必要があります。次に、コードの各セクションが独自の行に出力され、前のすべてのコードの長さ(バーを除く)が左に埋め込まれます。次に、各行の最後の2文字が「1つの追加スペース」+「コメント文字」になるように、各行に十分なスペースが右詰めされます。
1つの末尾の改行が許可されます。
別の例を示します。入力用
"Hello|World", "/"
コードの最初のセクションは「Hello」で、2番目のセクションは「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、関数の引数/戻り値など。通常どおり、これはcode-golfなので、コードをできるだけ短くして、最短の解決策が得られれば勝ちます。あなたの言語で!また、全体的な勝者として最短のソリューションを選択します。標準的な抜け穴は禁止されています。
|
キャラクターを使用せずにそれを行うことができればボーナスがいいので、あなたは自分自身を説明することができます
|
)にすることはできますか?