20. 有效的括号
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
思路:使用栈逐个进行括号匹配
首次未通过用例:"]{}"、"["
bool isValid(string s) {
if(s.size() == 0)
return true;
stack<char> stack1;
map<char,char> m = {{']','['},{'}','{'}, {')','('}};
for(auto i:s){
if(i == ']' || i == ')' || i == '}'){
//注意对栈判空,用例"]{}"
if(stack1.empty() || stack1.top() != m[i])
return false;
stack1.pop();
}else {
stack1.push(i);
}
}
//注意对栈判空,用例"["
return stack1.empty();
}