题意理解:
给定左右圆括号"()"的对数,打印输出所有有效的圆括号组会;
解题思路:
参考:http://blog.csdn.net/yapian8/article/details/27109689
解题代码:
class Solution {
private:
vector<string> ans;
void func(vector<string> &v, string s, int left, int right){
if(left==0 && right==0){
v.push_back(s);
return;
}
if(left>0){
func(v, s+"(", left-1, right);
}
if(left<right){
func(v, s+")", left, right-1);
}
}
public:
vector<string> generateParenthesis(int n) {
func(ans, "", n, n);
return ans;
}
};