[leetcode]Generate Parentheses
题目:
Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.
For example, given n = 3, a solution set is:
"((()))", "(()())", "(())()", "()(())", "()()()"
思路:卡塔兰数。
c++实现:
class Solution {
public:
vector<string> generateParenthesis(int n) {
vector<string> res;
string s = "";
if(n <= 0)
{
return res;
}
generate(n, n, s, res);
return res;
}
void generate(int l, int r, string s, vector < string > &res)
{
if(r < l)return;
if(l == 0 && r == 0){
res.push_back(s);
}
if(l>0)generate(l-1, r, s+"(", res);
if(r>0)generate(l, r-1, s+")", res);
}
};

浙公网安备 33010602011771号