题目:
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);}
};