这是Brain-Flak生日前的一系列挑战之一。在这里找到更多。
挑战
对于这一挑战,您的目标是在完全匹配的括号中找到第一对匹配的()[]{}<>
括号。借用DJMcMayhem对完全匹配的字符串的定义:
出于此挑战的目的,“括号”是以下任意字符:
()[]{}<>
。如果左括号和右括号的顺序正确且其中没有字符,则将一对括号视为“匹配”
() []{}
或者,如果其中的每个子元素也都匹配。
[()()()()] {<[]>} (()())
子元素也可以嵌套在几层深处。
[(){<><>[()]}<>()] <[{((()))}]>
当且仅当每对括号中的正确开/右括号正确且顺序正确时,字符串才被视为“完全匹配”。
输入项
输入将由单个非空字符串或仅包含character的char数组组成()[]{}<>
,并保证完全匹配。您可以采用符合我们I / O默认值的任何合理方式进行输入。
输出量
程序或函数的输出将是括号的索引,该括号将关闭第一个括号。输出必须是0
或已1
索引。同样,输出可以以与我们的I / O默认值相对应的任何合理方式进行。
测试用例
Input 0-indexed 1-indexed
() 1 2
(<>) 3 4
<[]{<>}> 7 8
{}{}{}{} 1 2
[[]<>[]] 7 8
这是代码高尔夫球,最少字节获胜!