class Solution {
public:
/**
*
* @param s string字符串
* @return bool布尔型
*/
bool isValid(string s) {
// write code here
stack<char> stk;
for(int i = 0; i < s.size(); i++){
if(s[i] == '(' || s[i] == '[' || s[i] == '{'){ //压栈
stk.push(s[i]);
continue;
}
//匹配就出栈,不匹配则直接退出
if(s[i] == ')' && stk.size() > 0 && stk.top() == '(' ||
s[i] == ']' && stk.size() > 0 && stk.top() == '[' ||
s[i] == '}' && stk.size() > 0 && stk.top() == '{'){
stk.pop();
}else {
return false;
}
}
//栈空才是完全匹配了防止((())这个情况
return stk.empty();
}
};