题目:https://oj.leetcode.com/problems/valid-parentheses/
题意:string s是一堆括号组成的字符串,返回s中所有括号是否能正确匹配
思路:把所有前括号入栈,再用后括号去匹配栈顶的前括号,匹配不是直接返回false,如果都匹配上,那么最后栈应该是空的,所以return 它是否为空就Ok
class Solution {
public:
bool isValid(string s) {
stack<char> sk;
for(int i =0;i<s.size();i++){
if(s[i] == '(' || s[i] == '[' || s[i] == '{')
sk.push(s[i]);
else{
if(sk.empty() && s[i]) return false;
else{
char ch =sk.top();
sk.pop();
if ((ch == '(' && s[i] != ')') || (ch == '[' && s[i] != ']') || (ch == '{' && s[i] != '}'))
return false;
}
}
}
return sk.empty();
}
};