15_leetcode_Generate Parentheses

来源:互联网 发布:大数据技术研究方向 编辑:程序博客网 时间:2024/05/17 01:13

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:

1: n <= 0; 2:采用递归的方式,设置left和right分别代表做括号和右括号的数值。3:在字符串中始终先排左括号(left > 0); 4:当right  > left时, 排右括号;4:注意递归结束的条件(left == 0 && right == 0),并保存这种括号的顺序

    vector<string> generateParenthesis(int n)    {        vector<string> result;                if(n <= 0)            return result;                string temp;                generateParenthesisCore(n, n, temp, result);                return result;    }        void generateParenthesisCore(int left, int right, string& temp, vector<string> &result)    {        if(left == 0 && right == 0)        {            result.push_back(temp);            return;        }                if(left > 0)        {            temp.push_back('(');            generateParenthesisCore(left - 1, right, temp, result);            temp.pop_back();        }                if(right > left)        {            temp.push_back(')');            generateParenthesisCore(left, right-1, temp, result);            temp.pop_back();                    }    }


0 0
原创粉丝点击