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; + } +};