[leetcode] Generate Parentheses

来源:互联网 发布:在淘宝好评返现违规吗 编辑:程序博客网 时间:2024/06/06 07:31

From : https://leetcode.com/problems/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:

"((()))", "(()())", "(())()", "()(())", "()()()"

class Solution {public:    vector<string> generateParenthesis(int n) {        vector<string> ans;string cur;generator(cur, 0, n, 0, n, ans);return ans;    }void generator(string cur, int lstart, int lend, int rstart, int rend, vector<string> &ans) {if(lend-lstart == rend-rstart) {cur += '('; lstart++; }if(lstart == lend) {string s(rend-rstart, ')');cur += s;ans.push_back(cur);return;}generator(cur+'(', lstart+1, lend, rstart, rend, ans);generator(cur+')', lstart, lend, rstart+1, rend, ans);}};


0 0
原创粉丝点击