Given a string containing just the characters '('
, ')'
, '{'
, '}'
, '['
and ']'
, determine if the input string is valid.
An input string is valid if:
- Open brackets must be closed by the same type of brackets.
- Open brackets must be closed in the correct order.
Note that an empty string is also considered valid.
Example 1:
Input: "()" Output: true
分析:
括号匹配问题,第二遍了但是还是没思路,看了solution,是通过stack解决的。
1. 遇到左边的括号就放到栈中,等待后续处理
2. 如果是右括号就看顶元素,如果和当前括号匹配就出栈,继续往下进行。
3. 如果不匹配就不算是valid
4. 所有元素判断结束,栈如果是空的就是valid, 否则不valid
注意:
我用LinkedList实现栈
用HashMap保存括号匹配规则