Ce fut l'un d'une série de défis menant à l'anniversaire de Brain-Flak. En savoir plus ici .
Défi
Pour ce défi, votre objectif sera de trouver la toute première paire de supports correspondants dans une chaîne de ()[]{}<>
supports parfaitement adaptée . Pour emprunter la définition de DJMcMayhem d'une chaîne entièrement appariée:
Aux fins de ce défi, un « support » est l' un de ces caractères:
()[]{}<>
.Une paire de crochets est considérée comme "assortie" si les crochets d'ouverture et de fermeture sont dans le bon ordre et ne contiennent aucun caractère, comme
() []{}
Ou si chaque sous-élément à l'intérieur est également mis en correspondance.
[()()()()] {<[]>} (()())
Les sous-éléments peuvent également être imbriqués plusieurs couches en profondeur.
[(){<><>[()]}<>()] <[{((()))}]>
Une chaîne est considérée comme "entièrement mise en correspondance" si et seulement si chaque paire de supports a le support d'ouverture et de fermeture correct dans le bon ordre.
Contribution
L'entrée consistera en une seule chaîne non vide ou un tableau de caractères contenant uniquement les caractères ()[]{}<>
, et il est garanti qu'elle correspond parfaitement. Vous pouvez prendre l' entrée d'une manière raisonnable qui correspond à nos valeurs par défaut i / o .
Sortie
La sortie de votre programme ou fonction sera l'index de la parenthèse qui ferme la première. Sortie doit être soit 0
ou 1
indexé. Encore une fois, la sortie peut être d'une manière raisonnable qui correspond à nos valeurs par défaut i / o .
Cas de test
Input 0-indexed 1-indexed
() 1 2
(<>) 3 4
<[]{<>}> 7 8
{}{}{}{} 1 2
[[]<>[]] 7 8
C'est le code-golf , le moins d'octets gagne!