就是在一个只有括号的字符串里的括号是否合法。 所谓合法就是成对,比如 "{}[](){([])}" 但是这样就是不对的 “[((((])” 以及包含的顺序不对 “([)]” 都判为非法。
bool isValid(string s) {
unordered_map<char, int> parenthesesDic{
{'{', 1}, {'[', 2}, {'(', 3}, {')', -3}, {']', -2}, {'}', -1}};
stack<int> parentheses;
for(auto c : s){
auto val = parenthesesDic[c];
if (val > 0){
parentheses.push(val);
}
else if (parentheses.empty() || ((val + parentheses.top()) != 0)){
return false;
}
else {
parentheses.pop();
}
}
return parentheses.empty()? true : false;
}