题目
给定一个只包括 ‘(‘,’)’,’{‘,’}’,’[‘,’]’ 的字符串,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例1
1 | 输入: "()" |
示例2
1 | 输入: "()[]{}" |
示例3
1 | 输入: "(]" |
示例4
1 | 输入: "([)]" |
示例5
1 | 输入: "{[]}" |
题解
这种匹配或者回文的题目一般都会用到栈,因为栈的特性就是:先进后出。相当于回文的效果。
我们碰到’(‘,栈push进去’)’;碰到’[‘,栈push进去’]’;碰到’(‘栈push进去’)’。这样当碰到右类型的括号时就出栈比较是否相等,如果不相等就直接返回false,相等则循环继续。
代码
1 | class Solution { |