您的位置:首页 > 其它

LeetCode-Generate Parentheses

2013-09-21 16:21 435 查看
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:

"((()))", "(()())", "(())()", "()(())", "()()()"


很简单的递归实现

class Solution {
public:
void Sub(vector<string>* ret,string* s,int level,int left,int current){
if(left==0){
while(level>0){
(*s)[current]=')';
level--;
current++;
}
(*ret).push_back(*s);
}
else{
(*s)[current]='(';
Sub(ret,s,level+1,left-1,current+1);
if(level!=0){
(*s)[current]=')';
Sub(ret,s,level-1,left,current+1);
}
}
}
vector<string> generateParenthesis(int n) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
vector<string> ret;
string s;
s.resize(2*n);
Sub(&ret,&s,0,n,0);
return ret;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: