Skip to content

Latest commit

 

History

History
33 lines (32 loc) · 1.17 KB

17. Letter Combinations of a Phone Number.md

File metadata and controls

33 lines (32 loc) · 1.17 KB

Given a string containing digits from 2-9 inclusive, 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. Note that 1 does not map to any letters.

Example:
Input: "23"
Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].

Note: Although the above answer is in lexicographical order, your answer could be in any order you want.

class Solution {
    public List<String> letterCombinations(String digits){
        List<String> list=new ArrayList<>();
        if(digits.length()==0 || digits==null) return list;
        String[] mapping={
            "0","1","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"
        };
        helper(list,digits,0,"",mapping);
        return list;
    }
    private void helper(List<String> list,String digits,int index,String cur,String[] mapping){
        if(index==digits.length()){
            list.add(cur);
            return;
        }
        String letters=mapping[digits.charAt(index)-'0'];
        for(int i=0;i<letters.length();i++){
            helper(list,digits,index+1,cur+letters.charAt(i),mapping);
        }
    }
}