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:
"((()))", "(()())", "(())()", "()(())", "()()()"/**void generate(string s, int left, int right, int n, vector<string> &st) { if(right > left) return; if(left > n || right > n) return; if(left < n ) { generate(s + "(", left + 1, right, n, st); } if(right < n ) { generate(s + ")", left, right + 1, n, st); } if(left == n && right == n) { st.push_back(s); } } vector<string> generateParenthesis(int n) { vector<string> vt; if(n <= 0) return vt; generate("", 0, 0, n, vt); return vt; }
No comments:
Post a Comment