总结:用相同的方法是有两种情况,一种是地柜, 一种是循环。
#include<vector>
#include<iostream>
#include<string>
using namespace std;
class Solution{
public:
void helper(int left,int right,string tmp,vector<string>&result){
if(left==0&&right==0){
result.push_back(tmp);
return;
}
if(left<0 ||right<0|| left>right) return;
helper(left-1,right,tmp+'(',result);
helper(left,right-1,tmp+')',result);
}
vector<string> generateParenthesis(int n) {
vector<string>result;
helper(n,n,"",result);
return result;
}
};
int main(){
Solution s;
int m=2;
vector<string > ans;
ans = s.generateParenthesis(m);
cout<<ans.size();
for(int i=0;i<ans.size();i++){
cout<<ans[i]<<'\t';
}
return 0;
}