美文网首页LeetCode交流
LeetCode:电话号码的字母组合

LeetCode:电话号码的字母组合

作者: 一萍之春 | 来源:发表于2019-03-05 22:33 被阅读0次

    电话号码的字母组合


    题目叙述:

    给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。

    给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

    示例
    示例:

    示例:
    输入:"23"
    输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].

    解题思路:

    将每个的情况放在一个List数组中每个键对应的值,递归调用查出所用的情况每次都是当前第一个的数值。直到输入的字符串为空。也就是使用暴力破解的方法。

    代码实现:
    class Solution {
        String[] list = {"abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
        public List<String> letterCombinations(String digits) {
            if (digits.length() != 0)
             backTrack("", digits);
            return output;
            
            
        }
        
        List<String> output = new ArrayList<String>();
        public void backTrack (String combination, String nextDigits){
            if (nextDigits.length() == 0){
                output.add(combination);
            }else{
                String digit = nextDigits.substring(0,1);
                int num = Integer.parseInt(digit);
                String letters = list[num-2];
                for(int i = 0; i < letters.length(); i++){
                    String letter = letters.substring(i,i+1);
                    backTrack(combination+letter,nextDigits.substring(1));
                }
                
            }
        }
    }
    

    相关文章

      网友评论

        本文标题:LeetCode:电话号码的字母组合

        本文链接:https://www.haomeiwen.com/subject/psbauqtx.html