先思考符合要求的串是什么样子的
任意时刻,(数量大于),且最后(==)==n即可
考虑下一个加入string的字符时(或者)即可
dfs
class Solution { public: vector<string> generateParenthesis(int n) { vector<string>ret; if(n==0) return ret; string s; int l=0,r=0; dfs(ret,n,s,l,r); return ret; } void dfs(vector<string>&ret,int len,string s,int l,int r) { if(r==len){ ret.push_back(s); return; } else { if(l<len) dfs(ret,len,s+"(",l+1,r); if(r<l) dfs(ret,len,s+")",l,r+1); return; } } };