[leetcode] 22 Generate Parentheses(递归)

简单的递归构造。小括号串是一个递归结构,跟单链表、二叉树等递归结构一样,首先想到用递归。一步步构造字符串。当左括号出现次数小于指定的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;}};

版权声明:本文为博主原创文章,未经博主允许不得转载。

我没有值得分享的感伤爱情故事,

[leetcode] 22 Generate Parentheses(递归)

相关文章:

你感兴趣的文章:

标签云: