Problem: 22. 括号生成
Code
使用 static 会被复用
class Solution {List<String> ans = new ArrayList<>();public List<String> generateParenthesis(int n){dfs(n, n, "");return ans;}/*** @param l 左括号待补个数* @param r 右括号待补个数* @param s 当前的括号序列*/private void dfs(int l, int r, String s){
// l > r:右括号数 > 左括号数 非法if (l < 0 || r < 0 || l > r)//剪枝return;if (l == r && l == 0){ans.add(s);return;}dfs(l - 1, r, s + "(");dfs(l, r - 1, s + ")");}
}