#include <iostream> (30316)#include <stack> #include <unordered_map> class Solution { public: bool isValid(string s) { stack<char> stack; unordered_map<char, char> match; match.insert(std::make_pair('(', ')')); match.insert(std::make_pair('[', ']')); match.insert(std::make_pair('{', '}')); for (char c : s) { if (match.find(c) != match.end()) { stack.push(c); } else { if (stack.empty() || match[stack.top()] != c) { return false; } stack.pop(); } } return stack.empty(); } }; int main() { Solution solution; string testString = "{[()]}"; bool result = solution.isValid(testString); std::cout << "Is the string valid? " << (result ? "Yes" : "No") << std::endl; return 0; }