Dies war eine von mehreren Herausforderungen, die zum Geburtstag von Brain-Flak führten. Mehr aus hier .
Herausforderung
Für diese Herausforderung besteht Ihr Ziel darin, das allererste Paar übereinstimmender Klammern in einer vollständig übereinstimmenden Klammerreihe zu finden ()[]{}<>
. So leihen Sie die Definition von DJMcMayhem für eine vollständig übereinstimmende Zeichenfolge aus:
Für die Zwecke dieser Herausforderung ist eine „Klammer“ eines dieser Zeichen:
()[]{}<>
.Ein Klammerpaar wird als "übereinstimmend" betrachtet, wenn die öffnende und schließende Klammer in der richtigen Reihenfolge sind und keine Zeichen enthalten, z
() []{}
Oder wenn jedes Unterelement in ihm auch übereinstimmt.
[()()()()] {<[]>} (()())
Unterelemente können auch mehrere Ebenen tief verschachtelt sein.
[(){<><>[()]}<>()] <[{((()))}]>
Eine Zeichenfolge wird nur dann als "vollständig passend" betrachtet, wenn jedes Klammerpaar die richtige öffnende und schließende Klammer in der richtigen Reihenfolge aufweist.
Eingang
Die Eingabe besteht aus einer einzelnen nicht leeren Zeichenfolge oder einem Zeichen-Array, das nur die Zeichen enthält ()[]{}<>
, und es wird garantiert, dass sie vollständig übereinstimmt. Sie können Eingaben in einer angemessenen Weise vornehmen, die unseren E / A-Standardwerten entspricht .
Ausgabe
Die Ausgabe Ihres Programms oder Ihrer Funktion ist der Index der Klammer, die die erste schließt. Die Ausgabe muss entweder 0
oder 1
indiziert sein. Auch hier kann die Ausgabe in einer angemessenen Weise erfolgen, die unseren E / A-Standardwerten entspricht .
Testfälle
Input 0-indexed 1-indexed
() 1 2
(<>) 3 4
<[]{<>}> 7 8
{}{}{}{} 1 2
[[]<>[]] 7 8
Das ist Code-Golf , die wenigsten Bytes gewinnen!