247. Strobogrammatic Number II

写的时候有点困了,0那里没有处理好

 1     public List<String> findStrobogrammatic(int n) {
 2         List<String> tmp = helper(n);
 3         List<String> res = new ArrayList<String>();
 4         if(n == 1) {
 5             return tmp;
 6         }
 7         String allZeroes = "";
 8         for(String each: tmp) {
 9             if(!each.startsWith("0")) {
10                 res.add(each);
11             }
12         }
13         return res;
14     }
15     
16     private List<String> helper(int n) {
17         List<String> res = new ArrayList<String>();
18         if(n == 0) {
19             res.add("");
20         } else if(n == 1) {
21             res.add("0");
22             res.add("1");
23             res.add("8");
24         } else{
25             List<String> pre = helper(n - 2);
26             for(int i = 0; i < pre.size(); i++) {
27                 String preStr = pre.get(i);
28                 res.add("0"+ preStr + "0");
29                 res.add("1"+ preStr + "1");
30                 res.add("8" + preStr + "8");
31                 res.add("6" + preStr + "9");
32                 res.add("9" + preStr + "6");
33             }
34         }
35         return res;
36     }

 

posted @ 2016-07-30 08:05  warmland  阅读(132)  评论(0编辑  收藏  举报