22. Generate Parentheses
https://leetcode.com/problems/generate-parentheses/description/
Thoughts
Code
/*
* @lc app=leetcode id=22 lang=cpp
*
* [22] Generate Parentheses
*/
// @lc code=start
class Solution {
public:
void dfs(int n, string &path, int sum, vector<string> &res) {
if (n == 0) {
if (sum == 0) {
res.push_back(path);
}
return;
}
path.push_back('(');
dfs(n - 1, path, sum + 1, res);
path.pop_back();
if (sum > 0) {
path.push_back(')');
dfs(n - 1, path, sum - 1, res);
path.pop_back();
}
}
vector<string> generateParenthesis(int n) {
vector<string> res;
string path;
dfs(n * 2, path, 0, res);
return res;
}
};
// @lc code=end
Analysis
Last updated