#include "s0020_valid_parentheses.hpp" bool S0020::match(string s1, string s2) { return s1 == "(" && s2 == ")" || s1 == "[" && s2 == "]" || s1 == "{" && s2 == "}"; } // 直接用栈 bool S0020::isValid(string s) { stack stack; int len = s.length(); for (int i{0}; i < len; i++) { if (stack.empty()) { stack.push(s.substr(i, 1)); } else { if (match(stack.top(), s.substr(i, 1))) { stack.pop(); } else { stack.push(s.substr(i, 1)); } } } return stack.empty(); }