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