Esse foi um de uma série de desafios que antecederam o aniversário de Brain-Flak. Saiba mais aqui .
Desafio
Para esse desafio, seu objetivo será encontrar o primeiro par de colchetes correspondentes em uma sequência de ()[]{}<>
colchetes totalmente compatível . Para emprestar a definição de DJMcMayhem de uma sequência totalmente correspondente:
Para o propósito deste desafio, um "suporte" é qualquer um desses caracteres:
()[]{}<>
.Um par de colchetes é considerado "correspondente" se os colchetes de abertura e fechamento estiverem na ordem correta e não tiverem caracteres dentro deles, como
() []{}
Ou se todos os subelementos dentro dele também corresponderem.
[()()()()] {<[]>} (()())
Os subelementos também podem ser aninhados com várias camadas de profundidade.
[(){<><>[()]}<>()] <[{((()))}]>
Uma string é considerada "Totalmente correspondida" se, e somente se, cada par de colchetes tiver o colchete de abertura e fechamento correto na ordem correta.
Entrada
A entrada consistirá em uma única string não vazia ou matriz de caracteres contendo apenas os caracteres ()[]{}<>
e é garantida uma correspondência completa. Você pode tirar a entrada de qualquer forma razoável que corresponde com os nossos I / O padrão .
Saída
A saída do seu programa ou função será o índice do suporte que fecha o primeiro. A saída deve ser 0
ou 1
indexada. Novamente, a saída pode ser de qualquer forma razoável que corresponde com os nossos I / O padrão .
Casos de teste
Input 0-indexed 1-indexed
() 1 2
(<>) 3 4
<[]{<>}> 7 8
{}{}{}{} 1 2
[[]<>[]] 7 8
Isso é código-golfe , o menor número de bytes vence!