class Solution {
public:
bool isValid(string s) {
if(s.size() % 2 != 0) return false;
stack<int> st;
for(auto value : s) {
if(value == '(') st.push(')');
else if(value == '{') st.push('}');
else if(value == '[') st.push(']');
else if(st.empty() || value != st.top()) return false;
else st.pop();
}
return st.empty();
}
};