leetcode - Generate Parentheses

来源:互联网 发布:中国象棋电脑软件 编辑:程序博客网 时间:2024/06/16 05:16

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


0 0