拨号问题

private static final String[] KEYS = {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
    
    public List<String> letterCombinations(String digits){
        List<String> combinations = new ArrayList<>();
        if(digits == null || digits.length() == 0){
            return combinations;
        }
        doCombination(new StringBuilder(),combinations,digits);
        return combinations;
    }
    
    private void doCombination(StringBuilder prefix,List<String> combinations,final String digits){
        if(prefix.length() == digits.length()){
            combinations.add(prefix.toString());
            return;
        }
        int curDisits = digits.charAt(prefix.length()) - '0';
        String letters = KEYS[curDisits];
        for(char c:letters.toCharArray()){
            prefix.append(c);
            doCombination(prefix, combinations, digits);
            prefix.deleteCharAt(prefix.length()-1);
        }
    }
原文地址:https://www.cnblogs.com/helloworldmybokeyuan/p/13446027.html