チャレンジ
この課題の目的は、完全に一致するブラケットの文字列から一致するブラケットの最初のペアを見つけること()[]{}<>
です。完全に一致する文字列のDJMcMayhemの定義を借用するには:
この課題のために、「括弧」は次の文字のいずれかです
()[]{}<>
。次のように、開始ブラケットと終了ブラケットが正しい順序であり、その中に文字がない場合、一対のブラケットは「一致」とみなされます。
() []{}
または、その中のすべてのサブ要素も一致する場合。
[()()()()] {<[]>} (()())
サブエレメントは、いくつかのレイヤーの深さにネストすることもできます。
[(){<><>[()]}<>()] <[{((()))}]>
ブラケットの各ペアに正しい順序で正しい開始ブラケットと終了ブラケットがある場合にのみ、文字列は「完全一致」と見なされます。
入力
入力は、文字のみを含む単一の空でない文字列またはchar配列で構成()[]{}<>
され、完全に一致することが保証されます。I / Oデフォルトに対応する合理的な方法で入力を行うことができます。
出力
プログラムまたは関数の出力は、最初の括弧を閉じる括弧のインデックスになります。出力は0
、1
インデックス化されているか、どちらかでなければなりません。繰り返しますが、出力はi / oのデフォルトに対応する合理的な方法で行われます。
テストケース
Input 0-indexed 1-indexed
() 1 2
(<>) 3 4
<[]{<>}> 7 8
{}{}{}{} 1 2
[[]<>[]] 7 8
これはcode-golfで、最少バイトが勝ちます!