[Leetcode] Generate Parentheses
2014-08-06 10:03
399 查看
问题:
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:
产生所有括号的组合,核心要点是如果左括号数nl>=nr右边括号数,则只能放入左括号,如果nl<nr,则当前位置可以放左或右括号。
vector<string> str;
char a='(';
char b=')';
void rankkuohao(string s, char c, int nl, int nr)
{
if( c !=' ') s.push_back(c);
if(nl==0 &&nr==0)
{
str.push_back(s);
s.clear();
};
if( nr > nl)
{
if(nl>0)
rankkuohao(s, a,nl-1, nr); //放入之后数量减一
if(nr>0)
rankkuohao(s, b, nl, nr-1);
}
else if(nl>0)
rankkuohao(s, a, nl-1, nr);
}
vector<string> generateParenthesis(int n)
{ string s;
char c=' ';
if (n<1) return str;
rankkuohao(s, c, n, n);
return str;
}
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:
"((()))", "(()())", "(())()", "()(())", "()()()"
产生所有括号的组合,核心要点是如果左括号数nl>=nr右边括号数,则只能放入左括号,如果nl<nr,则当前位置可以放左或右括号。
vector<string> str;
char a='(';
char b=')';
void rankkuohao(string s, char c, int nl, int nr)
{
if( c !=' ') s.push_back(c);
if(nl==0 &&nr==0)
{
str.push_back(s);
s.clear();
};
if( nr > nl)
{
if(nl>0)
rankkuohao(s, a,nl-1, nr); //放入之后数量减一
if(nr>0)
rankkuohao(s, b, nl, nr-1);
}
else if(nl>0)
rankkuohao(s, a, nl-1, nr);
}
vector<string> generateParenthesis(int n)
{ string s;
char c=' ';
if (n<1) return str;
rankkuohao(s, c, n, n);
return str;
}
相关文章推荐
- LeetCode Generate Parentheses
- [leetcode]Generate Parentheses 生成圆括号 python实现
- Java [leetcode 22]Generate Parentheses
- Leetcode: Generate Parentheses
- [LeetCode]Generate Parentheses
- Leetcode 22 Generate Parentheses
- LeetCode 22-Generate Parentheses
- LeetCode——Generate Parentheses
- [Leetcode 22, Medium] Generate Parentheses
- Leetcode Generate Parentheses 22
- leetcode 51: Generate Parentheses
- leetcode第22题——**Generate Parentheses
- 算法分析与设计——LeetCode Problem.22 Generate Parentheses
- 【JAVA、C++】LeetCode 022 Generate Parentheses
- [LeetCode] Generate Parentheses
- [LeetCode 22] Generate Parentheses
- leetcode 第20-21题 Valid Parentheses & Generate Parentheses
- [leetcode]Generate Parentheses
- [leetcode刷题系列]Generate Parentheses
- [LeetCode]Generate Parentheses