Questa è stata una delle sfide che hanno portato al compleanno di Brain-Flak. Scopri di più qui .
Sfida
Per questa sfida il tuo obiettivo sarà trovare la prima coppia di parentesi corrispondenti in una stringa di ()[]{}<>
parentesi completamente abbinata . Per prendere in prestito la definizione di DJMcMayhem di una stringa completamente abbinata:
Ai fini di questa sfida, una "staffa" è uno di questi personaggi:
()[]{}<>
.Una coppia di parentesi è considerata "abbinata" se le parentesi aperta e chiusa sono nell'ordine giusto e non hanno caratteri al loro interno, come
() []{}
O se anche ogni sottoelemento al suo interno è abbinato.
[()()()()] {<[]>} (()())
I sottoelementi possono anche essere nidificati a più livelli di profondità.
[(){<><>[()]}<>()] <[{((()))}]>
Una stringa è considerata "Completamente abbinata" se e solo se ogni coppia di parentesi ha la parentesi aperta e chiusa corretta nell'ordine giusto.
Ingresso
L'input consisterà in una singola stringa non vuota o array di caratteri contenente solo i caratteri ()[]{}<>
ed è garantito che corrisponda completamente. Si può prendere in ingresso in modo ragionevole che corrisponde con i nostri di I / O di default .
Produzione
L'output del tuo programma o funzione sarà l'indice della parentesi che chiude il primo. L'output deve essere 0
o 1
indicizzato. Ancora una volta, l'uscita può essere in qualsiasi maniera ragionevole che corrisponde con le I / O predefiniti .
Casi test
Input 0-indexed 1-indexed
() 1 2
(<>) 3 4
<[]{<>}> 7 8
{}{}{}{} 1 2
[[]<>[]] 7 8
Questo è code-golf , vince meno byte!