Given a string containing just the characters ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[’ and ‘]’, determine if the input string is valid.
The brackets must close in the correct order, “()” and “()[]{}” are all valid but “(]” and “([)]” are not.
简单的用一个栈记录括号的情况,将能匹配上的存入栈中,再逐个判断即可
class Solution {
public:
bool isValid(string s) {
stack<char> st;
for(char c: s){
if(c=='(') st.push(')');
else if(c=='[') st.push(']');
else if(c=='{') st.push('}');
else{
if(st.empty()) return false;
char tmp=st.top();
st.pop();
if(tmp!= c) return false;
}
}
return st.empty();
}
};