22. 括号生成

 1 //这道题没有思路,借鉴别人的代码
 2 
 3 
 4 //1、使用递归。
 5 //2、每次可以放置左括号的条件是当前左括号的数目不超过 nn。
 6 //3、每次可以放置右括号的条件是当前右括号的数目不超过左括号的数目。
 7 class Solution 
 8 {
 9     vector<string> res;
10     void DFS(int l,int r,int n,string temp)
11     {
12         if(l == n && r == n)
13         {
14             res.push_back(temp);
15             return;
16         }
17         if(l < n) DFS(l + 1, r, n, temp + "(");
18         if(r < l) DFS(l, r + 1, n, temp + ")");
19     }
20 public:
21     vector<string> generateParenthesis(int n) 
22     {
23         if(n == 0) return res;
24         DFS(0,0,n,"");
25         return res;
26     }
27 };

 

posted @ 2020-03-15 18:38  Jinxiaobo0509  阅读(135)  评论(0)    收藏  举报