LeetCode 22. Generate Parentheses
这道题想不出来是因为没有抽象出他的数学模型——对于每一个位置,前面左括号的个数都大于等于右括号个数。
class Solution { public: vector<string> generateParenthesis(int n) { vector<string> ans; generate(ans,n,n,""); return ans; } void generate(vector<string>& ans, int left,int right,string temp){ if (left==0&&right==0){ ans.push_back(temp); return ; } if (left) generate(ans,left-1,right,temp+'('); if (right>left) generate(ans,left,right-1,temp+')'); } };