要求:生成匹配的括号序列
思路:回溯
class Solution {
public:
vector<string> ans;
void dfs(string s,int left,int right,int& n){
if(s.size()==(n<<1)){
ans.push_back(s);
return;
}
if(left<n)dfs(s+'(',left+1,right,n);
if(left>right)dfs(s+')',left,right+1,n);
}
vector<string> generateParenthesis(int n) {
dfs("",0,0,n);
return ans;
}
};