您的位置:首页 > 其它

[leetcode] 22 Generate Parentheses(递归)

2015-10-01 23:20 295 查看
简单的递归构造。小括号串是一个递归结构,跟单链表、二叉树等递归结构一样,首先想到用递归。一步步构造字符串。当左括号出现次数小于指定的n时,可以放置新的左括号。当右括号出现次数小于左括号出现次数时,就可以放置新的右括号。我们可以将string放进参数,这样回溯的时候不必在进行删除处理。

class Solution {
public:
void solve(int n,string s,int l,int r,vector<string>&res)
{
if(l==n)//左括号已满
{
res.push_back(s.append(n-r,')'));
return ;
}
solve(n,s+'(',l+1,r,res);
if(l>r)
solve(n,s+')',l,r+1,res);
}
vector<string> generateParenthesis(int n) {
vector<string> res;
if(n>0)
solve(n,"",0,0,res);
return res;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: