34

编程题 34 /45

\hspace{15pt}给出一个仅包含字符仅由括号字符 \texttt{`['}\texttt{`]'}\texttt{`('}\texttt{`)'}\texttt{`\{'}\texttt{`\}'} 的括号序列字符串 s0 \leqq |s| \leqq 10^4),你需要判断给出的括号序列字符串 s 是否是有效的括号序列。

\hspace{15pt}有效括号序列的定义如下:
\hspace{23pt}\bullet\,空序列是有效括号序列;
\hspace{23pt}\bullet\,如果 A 是有效括号序列,则 \texttt{(A)}\texttt{[A]}\texttt{{A}} 都是有效括号序列;
\hspace{23pt}\bullet\,如果 A 和 B 都是有效括号序列,则它们的拼接 AB 也是有效括号序列。

\hspace{15pt}如果括号序列字符串 s 是有效的括号序列,返回一个布尔值 \texttt{true};否则返回一个布尔值 \texttt{false}

参考答案

开一个栈,遇到左括号时入栈,遇到右括号时查看栈顶是不是对应的括号,并出栈。