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:
"((()))", "(()())", "(())()", "()(())", "()()()"
采用递归的方式求解
1 class Solution{ 2 public: 3 void generate(vector<string> &res,string curr,int m,int n){ 4 if(m==0 && n==0){ //递归终止条件 5 res.push_back(curr); 6 return; 7 } 8 9 if(m!=0) generate(res,curr+"(",m-1,n); 10 11 if(m<n && n!=0) generate(res,curr+")",m,n-1); 12 } 13 14 vector<string> generateParenthesis(int n){ 15 vector<string> res; 16 res.clear(); 17 18 if(n>0){ 19 generate(res,string(),n,n); 20 } 21 22 return ret; 23 } 24 };