From 34e8cbf547d4ee111e50ca5db736fe48e8d3a8dc Mon Sep 17 00:00:00 2001 From: SquidSpirit Date: Sat, 22 Feb 2025 00:36:55 +0800 Subject: [PATCH] feat: 22_generate_parentheses --- 22_generate_parentheses/main.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 22_generate_parentheses/main.cpp diff --git a/22_generate_parentheses/main.cpp b/22_generate_parentheses/main.cpp new file mode 100644 index 0000000..2a54fb3 --- /dev/null +++ b/22_generate_parentheses/main.cpp @@ -0,0 +1,29 @@ +#include +using namespace std; + +class Solution { + public: + vector generateParenthesis(int n) { + vector result; + + function recursive = [&](string s, char next, int leftCount, int totalLeftCount) { + s.push_back(next); + + if (s.length() == n * 2) { + result.emplace_back(s); + return; + } + + if (totalLeftCount < n) { + recursive(s, '(', leftCount + 1, totalLeftCount + 1); + } + if (leftCount > 0) { + recursive(s, ')', leftCount - 1, totalLeftCount); + } + + }; + + recursive("", '(', 1, 1); + return result; + } +};