From d8f3b40085619cb680c8f227c65a1f5acc393223 Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 23 Feb 2021 21:07:19 +0800 Subject: Move leetcode solutions to subdir. --- leetcode/cpp/22.cpp | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 leetcode/cpp/22.cpp (limited to 'leetcode/cpp/22.cpp') diff --git a/leetcode/cpp/22.cpp b/leetcode/cpp/22.cpp new file mode 100644 index 0000000..e9467f1 --- /dev/null +++ b/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