采用递归的思想,剩余左括号数大于剩余右括号数,该情况一定错误。左右括号数均为0时,进行输出
class Solution {
public:
vector<string> generateParenthesis(int n) {
vector<string> ans;
generateans(n,n,"",ans);
return ans;
}
private:
void generateans(int left,int right,string temp,vector<string>& ans){
if(left>right)
return ;
else if(left==0&&right==0)
ans.push_back(temp);
else{
if(left>0)
generateans(left-1,right,temp+'(',ans);
if(right>0)
generateans(left,right-1,temp+')',ans);
}
}
};