leetcodeOJ 22. Generate Parentheses

来源:互联网 发布:windows insider 激活 编辑:程序博客网 时间:2024/06/14 13:24

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> ans;        if(n == 0)            return ans;        genPar(ans, "", n, 0);        return ans;    }    private:    void genPar(vector<string>& ans, string s, int n, int m){        if(m == 0 && n == 0){            ans.push_back(s);            return;        }        if(m != 0){            genPar(ans, s+')', n, m-1);        }        if(n != 0){            genPar(ans, s+'(', n-1, m+1);        }    }};

0 0
原创粉丝点击