您的位置:首页 > 其它

LeetCode_Generate Parentheses

2013-09-04 20:46 423 查看
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:
DFS(string s, int left, int right)
{
if(left + right == n * 2){
res.push_back(s);
return;
}
if(left == right){
s += '(';
DFS(s, left+1, right);
}else  if(left > right){
if(left < n){
DFS(s+'(', left+1, right);
}
DFS(s+')', left, right +1);
}
}
vector<string> generateParenthesis(int n) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
res.clear();
this->n = n;
string s = "";
DFS(s, 0, 0);
return res;
}
private:
vector<string> res;
int n;
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: