diff --git a/LetterCombPhoneNumber.java b/LetterCombPhoneNumber.java new file mode 100644 index 0000000..ce5b32c --- /dev/null +++ b/LetterCombPhoneNumber.java @@ -0,0 +1,37 @@ +class Solution { + public List letterCombinations(String digits) { + + if(digits.length() == 0){ + ArrayList bres = new ArrayList(); + return bres; + } + if(digits.length() == 1){ + ArrayList new_bres = new ArrayList<>(); + char ch = digits.charAt(0); + String code_for_number = codes[ch - 48]; + + for(int i = 0; i < code_for_number.length(); i++){ + new_bres.add("" + code_for_number.charAt(i)); + } + return new_bres; + } + + char ch = digits.charAt(0); + String ss = digits.substring(1); + + List pans = letterCombinations(ss); + ArrayList ans = new ArrayList(); + String code_for_number = codes[ch - 48]; + + for(int i = 0; i < code_for_number.length(); i++){ + char chval = code_for_number.charAt(i); + for(String val : pans){ + ans.add(chval + val); + } + } + + return ans; + } + + static String[] codes = {"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"}; +}