import java.util.*; public class Solution { /** * * @param n int整型 * @return string字符串ArrayList */ public ArrayList<String> generateParenthesis (int n) { ArrayList<String> list = new ArrayList<>(); dfs(list, new StringBuilder(), n, 0, 0); return list; } public void dfs(ArrayList<String> list, StringBuilder builder, int n, int open ,int close) { if (close>open || open>n) { return; } if (builder.length()==2*n) { list.add(builder.toString()); return; } dfs(list, builder.append("("), n, open + 1, close); builder.deleteCharAt(builder.length()-1); dfs(list, builder.append(")"), n, open, close + 1); builder.deleteCharAt(builder.length()-1); } }