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 }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步