[LeetCode]022-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:

“((()))”, “(()())”, “(())()”, “()(())”, “()()()”

Solution:
代码如下:

vector<string> generateParenthesis(int n) 
    {
        vector<string> result;
        string s ="";
        generate(n,n,s,result);
        return result;
    }

    void generate(int left_num,int right_num,string s,vector<string>& result)
    {
        if(left_num == 0 && right_num == 0)
            result.push_back(s);
        if(left_num > 0)
            generate(left_num-1,right_num,s+'(',result);
        if(right_num > left_num && right_num >0)
            generate(left_num,right_num-1,s+')',result);
    }

不太懂的,可以看看这篇博客:
http://blog.csdn.net/yutianzuijin/article/details/13161721

你可能感兴趣的:(LeetCode)