Alternestingは、文字列を取得し、それを交互のブラケットにネストする行為です。文字列を変更する方法は次のとおりです。
長さNのストリングの場合、中央のN文字を取り、それらを括弧で囲みます。したがって、文字列が
Hello world!
(12文字)であれば、次のようになります。(Hello world!)
次に、残りの中央の
n-2
文字を取り、角括弧で囲みます。この場合、中央の10文字はello world
ですので、次の反復は次のようになります。(H[ello world]!)
限り、文字列の途中で左つ以上の文字があるとして、交互に、最後の2つの手順を繰り返します
()
と[]
。最後の手順は次のとおりです。(Hello world!) (H[ello world]!) (H[e(llo worl)d]!) (H[e(l[l(o[ w]o)r]l)d]!)
最後の反復では、中央に2文字しか残っていないため、停止します。最後の文字列は
(H[e(l[l(o[ w]o)r]l)d]!)
中央の括弧に2つの文字があることに注意してください。これは、入力の長さが偶数の場合に発生します。入力の長さが奇数の場合(たとえば、
Hello, world!
コンマが追加されている場合)、中央に1文字しかありません。(H[e(l[l(o[,( )w]o)r]l)d]!)
今日の課題では、入力として文字列を受け取り、それを変更して新しい文字列を出力するプログラムまたは関数を作成する必要があります。任意の妥当な形式で入出力を行うことができます。入力は常に少なくとも1文字の長さで、印刷可能なASCIIのみが含まれます。入力に括弧や角括弧が含まれないことも想定できます。従来の言語の場合、これはそれほど重要ではありませんが、一部の難解な言語では簡単になります。
いつものように、これはコードとゴルフのコンペティションであるため、選択した言語で可能な限り最短の回答を作成してください。楽しむ!
テストIO
#Input #Output
"Alternesting is fun!" --> (A[l(t[e(r[n(e[s(t[in]g) ]i)s] )f]u)n]!)
"PPCG" --> (P[PC]G)
"Code-golf" --> (C[o(d[e(-)g]o)l]f)
"4 8 15 16 23 42" --> (4[ (8[ (1[5( [1]6) ]2)3] )4]2)
"a" --> (a)
"ab" --> (ab)
"abc" --> (a[b]c)
()
)で始める必要がありますか、または括弧()で始めることができ[]
ますか?
()
HelloWorld
。