LeetCode:Letter Combinations of a Phone Number

Letter Combinations of a Phone Number




Total Accepted: 81548  Total Submissions: 280640  Difficulty: Medium

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"].

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

Subscribe to see which companies asked this question

Hide Tags
  Backtracking String
Hide Similar Problems
  (M) Generate Parentheses (M) Combination Sum




























java code:

public class Solution {
    public List<String> letterCombinations(String digits) {
        
        String[] mappings = {"0","1","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
        
        LinkedList<String> ans = new LinkedList<String>();
        if(digits.length() == 0) return ans;
        ans.add("");
        
        for(int i=0;i<digits.length();i++) {
            int num = digits.charAt(i)-'0';
            while(ans.peek().length() == i) {
                String t = ans.remove();
                for(char c : mappings[num].toCharArray()) {
                    ans.add(t+c);
                }
            }
        }
        return ans;
    }
}


你可能感兴趣的:(LeetCode:Letter Combinations of a Phone Number)