您必须编写一个程序或函数,该程序或函数带有方括号,并输出该字符串是否完全匹配。您的程序应打印真实或虚假的值,并且IO可以采用任何合理的格式。
规则和定义:
出于此挑战的目的,“括号”是以下任意字符:
()[]{}<>
。如果左括号和右括号的顺序正确且其中没有字符,则将一对括号视为“匹配”
() []{}
或者,如果其中的每个子元素也都匹配。
[()()()()] {<[]>} (()())
子元素也可以嵌套在几层深处。
[(){<><>[()]}<>()] <[{((()))}]>
仅在以下情况下,字符串才被视为“完全匹配”:
每个字符都是一个括号,
每对支架都有正确的打开和关闭支架,并且顺序正确,并且
每个括号都匹配。
您可以假设输入将仅包含可打印的ASCII。
测试IO
以下是一些应返回真实值的输入:
()
[](){}<>
(((())))
({[<>]})
[{()<>()}[]]
[([]{})<{[()<()>]}()>{}]
以下是一些应返回假值的输出:
( Has no closing ')'
}{ Wrong order
(<)> Each pair contains only half of a matched element
(()()foobar) Contains invalid characters
[({}<>)> The last bracket should be ']' instead of '>'
(((())) Has 4 opening brackets, but only 3 closing brackets.
像往常一样,这是代码高尔夫球,因此存在标准漏洞,并且最短答案以字节为单位。
[}
比赛吗?如果没有,这些规则将其排除在何处?
Each pair of brackets has the correct opening and closing bracket and in the right order.