1 public class Solution { 2 public ArrayList<String> generateParenthesis(int n) { 3 // IMPORTANT: Please reset any member data you declared, as 4 // the same Solution instance will be reused for each test case. 5 ArrayList<String> result = new ArrayList<String>(); 6 StringBuilder builder = new StringBuilder(); 7 generate(result, builder, n, n); 8 return result; 9 } 10 private void generate(ArrayList<String> result, StringBuilder builder, int start, int end){ 11 if(start == 0 && end == 0){ 12 result.add(builder.toString()); 13 return; 14 } 15 if(start > 0){ 16 builder.append('('); 17 generate(result, builder, start-1, end); 18 builder.deleteCharAt(builder.length()-1); 19 } 20 if(end > start){ 21 builder.append(')'); 22 generate(result, builder, start, end-1); 23 builder.deleteCharAt(builder.length()-1); 24 } 25 } 26 }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步