#include <stack>
class Solution {
public:
/**
*
* @param s string字符串
* @return bool布尔型
*/
map<char,char> match;
bool isleft(char c){
if(c=='('||c=='['||c=='{') return true;
return false;
}
bool isMatch(char c,stack<char>& help){
if(help.empty()||help.top()!=match[c]) return false;
help.pop();
return true;
}
bool isValid(string s) {
// write code here
stack<char> help;
match[')']='(';
match[']']='[';
match['}']='{';
for(int i=0;i<s.length();i++){
if(isleft(s[i])) help.push(s[i]);
else{
if(!isMatch(s[i],help)){
return false;
}
}
}
if(!help.empty()) return false;
return true;
}
};