[LeetCode]day31 20.有效的括号
题目链接
题目描述
示例 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();
}
};