#include char ascii_tab[128]; class Solution { public: bool isValid(string s) { if (s.size() == 0) return true; std::stack st; ascii_tab['('] = 11; ascii_tab['{'] = 12; ascii_tab['['] = 13; ascii_tab[')'] = 21; ascii_tab['}'] = 22; ascii_tab[']'] = 23; for (auto c : s) { char n = ascii_tab[c]; if (n < 20) st.push(n); else { if (st.empty()) return false; if (n != st.top() + 10) return false; st.pop(); } } if (st.empty()) return true; return false; } };