Este fue uno de una serie de desafíos previos al cumpleaños de Brain-Flak. Descubre más aquí .
Reto
Para este desafío, su objetivo será encontrar el primer par de corchetes coincidentes en una cadena de ()[]{}<>
corchetes totalmente coincidentes . Para tomar prestada la definición de DJMcMayhem de una cadena totalmente coincidente:
A los efectos de este reto, un "soporte" es cualquiera de los siguientes caracteres:
()[]{}<>
.Un par de paréntesis se considera "coincidente" si los paréntesis de apertura y cierre están en el orden correcto y no tienen caracteres dentro de ellos, como
() []{}
O si cada subelemento dentro de él también coincide.
[()()()()] {<[]>} (()())
Los subelementos también se pueden anidar en varias capas de profundidad.
[(){<><>[()]}<>()] <[{((()))}]>
Una cadena se considera "Totalmente coincidente" si y solo si cada par de corchetes tiene el corchete de apertura y cierre correcto en el orden correcto.
Entrada
La entrada consistirá en una sola cadena no vacía o matriz de caracteres que contiene solo los caracteres ()[]{}<>
, y se garantiza que coincida completamente. Usted puede tomar la entrada de cualquier manera razonable que se corresponde con nuestros E / S por defecto .
Salida
La salida de su programa o función será el índice del paréntesis que cierra el primero. La salida debe ser 0
o 1
indexada. Una vez más, la salida puede estar en cualquier forma razonable que se corresponde con nuestros E / S por defecto .
Casos de prueba
Input 0-indexed 1-indexed
() 1 2
(<>) 3 4
<[]{<>}> 7 8
{}{}{}{} 1 2
[[]<>[]] 7 8
Este es el código de golf , ¡la menor cantidad de bytes gana!