题目链接
题目描述
示例 1:
输入:s = “()”
输出:true
示例 2:
输入:s = “()[]{}”
输出:true
示例 3:
输入:s = “(]”
输出:false
示例 4:
输入:s = “([])”
输出:true
提示:
1 <= s.length <= 104
s 仅由括号 ‘()[]{}’ 组成
解题
思路
1.遇到 ({[ 就压入栈
2.遇到 )}] 就取栈顶看是否相匹配,不相配返回false,相配弹出
3.遍历完字符串之后,判断栈是否为空,如果为空则返回true;不为空返回false;
代码
class Solution {
public:bool isValid(string s) {stack<char>bracket;for(int i=0;i<s.size();i++){if(s[i]=='('||s[i]=='['||s[i]=='{'){bracket.push(s[i]);}else{if(bracket.empty())return false;switch(s[i]){case ')':if(bracket.top()!='(')return false;break;case']':if(bracket.top()!='[')return false;break;case'}':if(bracket.top()!='{')return false;break;}bracket.pop();}}return bracket.empty();}
};