【22】Generate Parentheses
2016-08-15 16:30
225 查看
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:
简单DFS
void dfs(int cur,int n,vector<string> &res,string one,int left,int right){
if(cur == 2*n){
res.push_back(one);
return;
}
if(left<n){
dfs(cur+1,n,res,one+"(",left+1,right);
}
if(right<n && left>right){
dfs(cur+1,n,res,one+")",left,right+1);
}
}
vector<string> generateParenthesis(int n) {
vector<string> res;
dfs(0,n,res,"",0,0);
return res;
}
For example, given n = 3, a solution set is:
[ "((()))", "(()())", "(())()", "()(())", "()()()" ]
简单DFS
void dfs(int cur,int n,vector<string> &res,string one,int left,int right){
if(cur == 2*n){
res.push_back(one);
return;
}
if(left<n){
dfs(cur+1,n,res,one+"(",left+1,right);
}
if(right<n && left>right){
dfs(cur+1,n,res,one+")",left,right+1);
}
}
vector<string> generateParenthesis(int n) {
vector<string> res;
dfs(0,n,res,"",0,0);
return res;
}
相关文章推荐
- 22 Generate Parentheses
- Leetcode OJ 22 Generate Parentheses [Medium]
- leetcode-22-Generate Parentheses
- 22. Generate Parentheses
- 回溯之Leetcode22 Generate Parentheses
- 22. Generate Parentheses
- LeetCode 22: Generate Parentheses
- LeetCode22——Generate Parentheses(给定n对括号,然后看有多少正确的括号组合)
- [Leetcode 22, Medium] Generate Parentheses
- LeetCode 22 Generate Parentheses
- [LeetCode-Algorithms-22] "Generate Parentheses" (2017.10.25-WEEK8)
- [leetcode] 22 Generate Parentheses(递归)
- leetcode@ [22]Generate Parentheses (递归 + 卡特兰数)
- Leetcode Generate Parentheses 22
- LeetCode 22 Generate Parentheses
- [LeetCode]22 Generate Parentheses
- Leetcode 22 Generate Parentheses
- leetcode-22 Generate Parentheses
- Leetcode-22: Generate Parentheses
- Generate Parentheses - LeetCode 22