您的位置:首页 > 其它

[LeetCode] Generate Parentheses

2014-05-09 16:43 190 查看
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> result;
        generate(n, 0, 0, "", result);
        return result;
    }
    void generate(int n, int l, int r, string temp, vector<string> &result)
    {
        if(l + r == 2 * n)
        {
            if(l == r)
                result.push_back(temp);
            return;
        }
        if(l < r)   return;
        generate(n, l + 1, r, temp + '(', result);
        generate(n, l, r + 1, temp + ')', result);
    }
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: