Leetcode【21】:Generate Praentheses

来源:互联网 发布:三知四会一联通图片 编辑:程序博客网 时间:2024/06/03 18:46

给定一个整数,返回合法配对的括号串。比如给个3,返回"((()))", "(()())", "(())()", "()(())", "()()()"

分析:典型的递归问题,希望加深理解。

class Solution{public:vector<string> generateParenthesis(int n) {vector<string> res;if(n>0)generate(n,"",0,0,res);return res;}void generate(int n, string s, int l, int r, vector<string> &res){if(l==n){res.push_back(s.append(n-r,')'));return ;}//递归跳出条件:左括号已经满n了,必须添加右括号。generate(n,s+'(',l+1,r,res);//否则可以添加左括号if(l>r)generate(n,s+')',l,r+1,res);//如果右括号没左括号多的话,可以添加右括号。}};


0 0
原创粉丝点击