JasonChang

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

recursion problem

 1 public class Solution {
 2     public ArrayList<String> letterCombinations(String digits) {
 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         if(digits == null||digits.length() == 0)
 7         {
 8             result.add("");
 9             return result;
10         }
11         if(digits.length() == 1)
12             return getString(digits.charAt(0));
13         ArrayList<String> first = getString(digits.charAt(0));
14         ArrayList<String> tmp = letterCombinations(digits.substring(1));
15         
16         for(int i = 0; i < first.size(); ++i)
17         {
18             for(int j = 0; j < tmp.size(); ++j)
19             {
20                 result.add(first.get(i) + tmp.get(j));
21             }
22         }
23         return result;
24     }
25     
26     private ArrayList<String> getString(char mychar)
27     {
28         ArrayList<String> result = new ArrayList<String>();
29         
30         switch(mychar){
31         case '2': result.add("a");
32                   result.add("b");
33                   result.add("c");
34                   break;
35         case '3': result.add("d");
36                   result.add("e");
37                   result.add("f");
38                   break;
39         case '4': result.add("g");
40                   result.add("h");
41                   result.add("i");
42                   break;
43         case '5': result.add("j");
44                   result.add("k");
45                   result.add("l");
46                   break;
47         case '6': result.add("m");
48                   result.add("n");
49                   result.add("o");
50                   break;
51         case '7': result.add("p");
52                   result.add("q");
53                   result.add("r");
54                   result.add("s");
55                   break;
56         case '8': result.add("t");
57                   result.add("u");
58                   result.add("v");
59                   break;
60         case '9': result.add("w");
61                   result.add("x");
62                   result.add("y");
63                   result.add("z");
64                   break;
65         default: break;
66         }
67         return result;
68     }
69 }

 

posted on 2013-11-05 14:07  JasonChang  阅读(205)  评论(0编辑  收藏  举报