[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;
}
};
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;
}
};
相关文章推荐
- light oj 1254 - Prison Break (Dijkstra 汽车加油行驶最优问题 最短路)
- 51单片机利用IIC总线对LM75A温度进行读取
- UIAlertView
- スマホの文字入力は何派?ケータイ打ち・フリック入力・QWERTY入力を選ぶ理由
- 零基础学python-19.6 生成器函数应用
- Treat your machine fair
- 设计模式试题-答案
- Caffe-----ProtoBuffer ,How to use protobuffer in Ubuntu
- 零基础学python-19.6 生成器函数应用
- state状态模式
- C++在IO方面效率低下的鬼话别信了 cin.tie与sync_with_stdio加速输入输出
- c++11智能指针
- display:inline-block兼容ie6/7的写法
- bzoj1724【Usaco2006 Nov】Fence Repair 切割木板
- 求算法的时间复杂度级别
- Linux程序包管理
- Linux程序包管理
- #LeetCode# #C++# Binary Tree Inorder Traversal
- Eclipse中设置代码缩进为空格缩进
- Android之平时遇见的异常和错误总结(不断更新)