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();
}