class Solution {
public:
/**
*
* @param s string字符串
* @return bool布尔型
*/
/*
使用stack 遇到左面的push,遇到右面的先和top对一下
if(不匹配) {
return false;
} else {
pop,
}
*/
bool isValid(string s) {
// write code here
int len = s.size();
if (len == 0) {
return true;
}
stack<char> sta;
for (int i = 0; i < len; i++) {
if (s[i] == '[' || s[i] == '(' || s[i] == '{') {
sta.push(s[i]);
}
if (s[i] == ']' || s[i] == ')' || s[i] == '}') {
if (sta.empty()) {
return false;
}
char top = sta.top();
if ((s[i] == ']' && top != '[') || (s[i] == ')' && top != '(') || (s[i] == '}' && top != '{')) {
return false;
}
sta.pop();
}
}
if (!sta.empty()) {
return false;
}
return true;
}
};