经典的用栈判断语法合法性问题
#include <stack> #include <unordered_map> class Solution { public: unordered_map<char, char> char_map = {{'(', ')'}, {'{', '}'}, {'[', ']'}}; bool isValid(string s) { stack<char> stack; for (int i = 0; i < s.size(); i++) { if (!stack.empty() && char_map[stack.top()] == s[i]) { stack.pop(); } else { stack.push(s[i]); } } return stack.empty(); } };