解题思路: 首先想到栈的操作,先入后出,用一个vector容器来模拟栈的操作.
class Solution {
public:
bool isValid(string s) {
vector<char> res;
map<char,char> m{ {']','['},{')','('},{'}','{'} };
for(int i = 0; i < s.length();i++){
if (s[i] == '(' || s[i] == '[' || s[i] == '{')
res.push_back(s[i]);
if (s[i] == ')' || s[i] == ']' || s[i] == '}'){
if(res.size() == 0 || res.back() != m[s[i]])
return false;
else
res.pop_back();
}
}
return res.size() == 0;
}
};