22. 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:
[ "((()))", "(()())", "(())()", "()(())", "()()()" ]
class Solution { public: vector<string> generateParenthesis(int n) { vector<string> svec; if(n<=0) return svec; generateParenthesis(svec,"",n,n); return svec; } void generateParenthesis(vector<string> &v,string s,int l,int r){ if(l==0 && r==0) v.push_back(s); if(l>0) generateParenthesis(v,s+"(",l-1,r); if(r>0 && l<r) generateParenthesis(v,s+")",l,r-1); } };