@@ -0,0 +1,1101 @@
+import java.util.List;%0Aimport java.util.ArrayList;%0A%0Apublic class Solution %7B%0A  public List%3CString%3E letterCombinations(String digits) %7B%0A    String%5B%5D map = new String%5B10%5D;%0A    if (digits.length() == 0) return new ArrayList%3CString%3E();%0A    map%5B0%5D = %22%22;%0A    map%5B1%5D = %22%22;%0A    map%5B2%5D = %22abc%22;%0A    map%5B3%5D = %22def%22; %0A    map%5B4%5D = %22ghi%22; %0A    map%5B5%5D = %22jkl%22; %0A    map%5B6%5D = %22mno%22; %0A    map%5B7%5D = %22pqrs%22; %0A    map%5B8%5D = %22tuv%22;%0A    map%5B9%5D = %22wxyz%22;%0A    %0A    return permutation(digits, 0, map);%0A  %7D%0A%0A  private List%3CString%3E permutation(String digits, int index, String%5B%5D map) %7B%0A    List%3CString%3E result;%0A    if (index %3C digits.length() - 1) %7B%0A      result = permutation(digits, index + 1, map);%0A    %7D else %7B%0A      result = new ArrayList%3CString%3E();%0A      result.add(new String(%22%22));%0A    %7D%0A%0A    List%3CString%3E newResult = new ArrayList%3CString%3E();%0A    for (int i = 0; i %3C result.size(); i ++) %7B%0A      String c = result.get(i);%0A      String mapped = map%5Bdigits.charAt(index) - '0'%5D;%0A%0A      for (int j = 0; j %3C mapped.length(); j ++) %7B%0A        newResult.add(mapped.charAt(j) + %22%22 + c);%0A      %7D%0A    %7D%0A%0A    return newResult;%0A  %7D%0A%7D

Add leetcode 17