From 185ef9fcb0e59f13e9ee0ccb261693cdaddebab0 Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 23 Feb 2021 21:07:19 +0800 Subject: import(solutions): Move leetcode solutions to subdir. --- works/solutions/leetcode/cpp/22.cpp | 40 +++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 works/solutions/leetcode/cpp/22.cpp (limited to 'works/solutions/leetcode/cpp/22.cpp') diff --git a/works/solutions/leetcode/cpp/22.cpp b/works/solutions/leetcode/cpp/22.cpp new file mode 100644 index 0000000..e9467f1 --- /dev/null +++ b/works/solutions/leetcode/cpp/22.cpp @@ -0,0 +1,40 @@ +#include +#include + +using std::string; +using std::vector; + +class Solution +{ +public: + static void backtrack(vector &result, string ¤t, int left, int right, int count, int string_length) + { + if (current.length() == string_length) + { + result.push_back(current); + return; + } + + if (left < count) + { + current.push_back('('); + backtrack(result, current, left + 1, right, count, string_length); + current.pop_back(); + } + + if (right < left) + { + current.push_back(')'); + backtrack(result, current, left, right + 1, count, string_length); + current.pop_back(); + } + } + + vector generateParenthesis(int n) + { + vector result; + string current; + backtrack(result, current, 0, 0, n, n * 2); + return std::move(result); + } +}; \ No newline at end of file -- cgit v1.2.3