首页 > 其他 > 详细

17. 电话号码的字母组合

时间:2019-07-28 14:17:31      阅读:79      评论:0      收藏:0      [点我收藏+]

题目地址:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/submissions/

代码地址:https://github.com/javartisan/edx-ds/tree/master/src/main/java/com/javartisan/leetcode

回溯方法:

class Solution {
    
    static char [][]mtx={
        {‘a‘,‘b‘,‘c‘},//2
        {‘d‘,‘e‘,‘f‘},//3
        {‘g‘,‘h‘,‘i‘},//4
        {‘j‘,‘k‘,‘l‘},
        {‘m‘,‘n‘,‘o‘},
        {‘p‘,‘q‘,‘r‘,‘s‘},
        {‘t‘,‘u‘,‘v‘},
        {‘w‘,‘x‘,‘y‘,‘z‘}//9
    };
    
    public List<String> letterCombinations(String digits) {
        List<String> ans = new ArrayList<>();
        if(digits==null||digits.length()==0){
            return ans;
        }
        dfs(ans, new StringBuilder(), digits, 0);
        return ans;
    }

    
    
    public void dfs(List<String> ans,StringBuilder an,String d,int index){
        
        if(index==d.length()){
            ans.add(an.toString());
            return;
        }
        
        int num = d.charAt(index)-50;
        char[] letters = mtx[num];
        an.append(letters[0]);
        dfs(ans,an,d,index+1);
        for(int i=1,size=letters.length;i<size;i++){
            an.setCharAt(an.length()-1,letters[i]);
            dfs(ans,an,d,index+1);
        }
        an.delete(an.length()-1,an.length());
    }
    
}

  

17. 电话号码的字母组合

原文:https://www.cnblogs.com/leodaxin/p/11258667.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!