Given a digit string, return all possible letter combinations that the number could represent.
A mapping of digit to letters (just like on the telephone buttons) is given below.
Input:Digit string "23" Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
gave digits = "23"
i=0 -> result=combine("abc", [""]) ---> [a,b,c];
i=1 -> result=combine("def", [a,b,c]) ---> [ad,bd,cd, ae,be,ce, af,bf,cf];
1 public class Solution { 2 public static List<String> letterCombinations(String digits) { 3 String digitletter[] = {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"}; 4 List<String> result = new ArrayList<String>(); 5 6 if (digits.length()==0) return result; 7 8 result.add(""); 9 for (int i=0; i<digits.length(); i++) 10 result = combine(digitletter[digits.charAt(i)-'0'],result); 11 12 return result; 13 } 14 15 public static List<String> combine(String digit, List<String> list) { 16 List<String> result = new ArrayList<String>(); 17 18 for (int i=0; i<digit.length(); i++) 19 for (String x : list) 20 result.add(x+digit.charAt(i)); 21 22 return result; 23 } 24 }