JasonChang

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
 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 }

 

posted on 2013-11-05 12:19  JasonChang  阅读(192)  评论(0编辑  收藏  举报