正しくバランスの取れた括弧の空でない文字列を考えてみましょう:
(()(()())()((())))(())
括弧の各ペアは、折り畳まれた伸縮構造のリングを表すと想像できます。それでは、望遠鏡を拡張しましょう。
( )( )
()( )()( ) ()
()() ( )
()
別の見方をすると、深さnの括弧は、水平位置を維持したまま行nに移動します。
あなたの仕事は、バランスの取れた括弧のような文字列を取り、拡張バージョンを作成することです。
プログラムまたは関数を記述し、STDIN(またはそれに最も近いもの)、コマンドライン引数または関数パラメーターを介して入力を取得し、STDOUT(または最も近いもの)、戻り値または関数(出力)パラメーターを介して出力を生成できます。
入力文字列が有効である、つまり、括弧のみで構成されており、それらが正しくバランスしていると想定できます。
各行に末尾のスペースを印刷できますが、必要以上の先行スペースは印刷できません。合計で、行は入力文字列の長さの2倍を超えてはなりません。オプションで、単一の末尾の改行を印刷できます。
例
上記の例に加えて、さらにいくつかのテストケースがあります(入力と出力は空の行で区切られています)。
()
()
(((())))
( )
( )
( )
()
()(())((()))(())()
()( )( )( )()
() ( ) ()
()
((()())()(()(())()))
( )
( )()( )
()() ()( )()
()
関連する課題:
- Topographic Strings。このチャレンジの出力を本質的に補完するものを生成するように求められます。
- PhiNotPiによって最近投稿された、この課題のアイデアを広く一般化したコード説明フォーマッター。(実際、PhiNotPiの彼のアイデアの元の説明が、この課題のきっかけとなりました。)
リーダーボード
フー、これはかなり多くの参加を得たので、ここでは、定期的なリーダーボードと言語ごとの勝者の概要の両方を生成するスタックスニペットがあります。
回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。
# Language Name, N bytes
N
提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば:
# Ruby, <s>104</s> <s>101</s> 96 bytes