题目描述:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。
解题思路:遇到左括号先入栈,遇到右括号时判断栈顶元素是否为右括号。
代码:
class Solution {
public:
bool isValid(string s) {
stack<char>paren;
for(char&c:s){
switch(c){
case'(':
case'{':
case'[':paren.push(c);break;
case')':
if(paren.empty()||paren.top()!='(') return false;
else paren.pop();break;
case'}':
if(paren.empty()||paren.top()!='{') return false;
else paren.pop();break;
case']':
if(paren.empty()||paren.top()!='[') return false;
else paren.pop();break;
default:;//pass
}
}
return paren.empty();
}
};