LeetCode交流

LeetCode:电话号码的字母组合

2019-03-05  本文已影响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));
            }
            
        }
    }
}
上一篇 下一篇

猜你喜欢

热点阅读