码迷,mamicode.com
首页 > 其他好文 > 详细

22. Generate Parentheses

时间:2019-10-29 00:48:43      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:accept   组合   air   代码   vector   function   parent   res   +=   

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:

[
  "((()))",
  "(()())",
  "(())()",
  "()(())",
  "()()()"
]
Accepted
412,522
Submissions
714,119
 
dfs练手题目, 遍历所有可能的括号组合.
有n对括号, 那么就有n个左括号和n个又括号,由 n和m分别表示, 代码结构和n sum问题类似
class Solution {
public:
    vector<string> generateParenthesis(int n) {
        vector<string> res;
        string s;
        traverse(res, s, n, n);
        return res;
    }
    
    void traverse(vector<string> &res,string &s, int n, int m)
    {
        if(0==n&&0==m)
        {
            res.push_back(s);
            return;
        }
        
        if(n>0)
        {
        s+=(;
        traverse(res,s,n-1,m);
        s.pop_back();
        }
        
        if(m>n)
        {
        s+=);
        traverse(res,s,n,m-1);
        s.pop_back();
        }
    }
};

 

22. Generate Parentheses

标签:accept   组合   air   代码   vector   function   parent   res   +=   

原文地址:https://www.cnblogs.com/lychnis/p/11756232.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!