class Solution {
public:
bool isValid(string s) {
//无序的map
unordered_map<char,int> m{{'(',1},{'[',2},{'{',3},
{')',4},{']',5},{'}',6}};
stack<char> st;
bool istrue=true;
//遍历字符串
for(char c:s){
//标志
int flag=m[c];
//判断是左括号
if(flag>=1&&flag<=3) st.push(c);
//判断是对应的右括号,弹出左括号
else if(!st.empty()&&m[st.top()]==flag-3) st.pop();
//不是对应的右括号
else {istrue=false;break;}
}
//栈中还有左括号未弹出
if(!st.empty()) istrue=false;
return istrue;
}
};
}
10-12
585