From dc1f0c4c0096013799416664894c5194dc7e1f52 Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Fri, 28 Feb 2025 23:13:39 +0800 Subject: chore(store): move everything to store. --- store/works/solutions/leetcode/cpp/20.cpp | 55 +++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 store/works/solutions/leetcode/cpp/20.cpp (limited to 'store/works/solutions/leetcode/cpp/20.cpp') diff --git a/store/works/solutions/leetcode/cpp/20.cpp b/store/works/solutions/leetcode/cpp/20.cpp new file mode 100644 index 0000000..e994e96 --- /dev/null +++ b/store/works/solutions/leetcode/cpp/20.cpp @@ -0,0 +1,55 @@ +#include + +using std::string; + +#include + +class Solution +{ +public: + inline static char get_companion(char c) + { + switch (c) + { + case ')': + return '('; + case ']': + return '['; + default: + return '{'; + } + } + + bool isValid(string s) + { + std::stack stack; + + for (const auto c : s) + { + switch (c) + { + case '(': + case '[': + case '{': + { + stack.push(c); + break; + } + case ')': + case ']': + default: + { + if (stack.empty()) + return false; + const auto top = stack.top(); + const char companion = get_companion(c); + if (top != companion) + return false; + stack.pop(); + } + } + } + + return stack.empty(); + } +}; -- cgit v1.2.3