LeetCode刷题日志-17.电话号码的字母组合

纯暴力解法,digits有多长,就循环多少次进行字母组合

java 复制代码
class Solution {
    public List<String> letterCombinations(String digits) {
        List<String> reslut = new ArrayList<>();
        if(digits.equals(""))
        return reslut;

       Map<Integer, String> letter_hash = new HashMap<Integer, String>() {{
            put(2, "abc");
            put(3, "def");
            put(4, "ghi");
            put(5, "jkl");
            put(6, "mno");
            put(7, "pqrs");
            put(8, "tuv");
            put(9, "wxyz");
        }};
        if(digits.length() == 1){
            for(char c : letter_hash.get(Integer.parseInt(String.valueOf(digits.charAt(0)))).toCharArray()){
                reslut.add(String.valueOf(c));
            }
        }
        
        if(digits.length() == 2){
            for(char c : letter_hash.get(Integer.parseInt(String.valueOf(digits.charAt(0)))).toCharArray()){
                StringBuilder re  =new StringBuilder();
                for(char d : letter_hash.get(Integer.parseInt(String.valueOf(digits.charAt(1)))).toCharArray()){
                    re.append(String.valueOf(c));
                    re.append(String.valueOf(d));
                    reslut.add(re.toString());
                    re.delete(0,re.length());
                }
            }
        }

        if(digits.length() == 3){
            for(char c : letter_hash.get(Integer.parseInt(String.valueOf(digits.charAt(0)))).toCharArray()){
                StringBuilder re  =new StringBuilder();
                for(char d : letter_hash.get(Integer.parseInt(String.valueOf(digits.charAt(1)))).toCharArray()){
                    for(char e : letter_hash.get(Integer.parseInt(String.valueOf(digits.charAt(2)))).toCharArray()){
                        re.append(String.valueOf(c));
                        re.append(String.valueOf(d));
                        re.append(String.valueOf(e));
                        reslut.add(re.toString());
                        re.delete(0,re.length());
                    }
                }
            }
        }

        if(digits.length() == 4){
            for(char c : letter_hash.get(Integer.parseInt(String.valueOf(digits.charAt(0)))).toCharArray()){
                StringBuilder re  =new StringBuilder();
                for(char d : letter_hash.get(Integer.parseInt(String.valueOf(digits.charAt(1)))).toCharArray()){
                    for(char e : letter_hash.get(Integer.parseInt(String.valueOf(digits.charAt(2)))).toCharArray()){
                        for(char f : letter_hash.get(Integer.parseInt(String.valueOf(digits.charAt(3)))).toCharArray()){
                            re.append(String.valueOf(c));
                            re.append(String.valueOf(d));
                            re.append(String.valueOf(e));
                            re.append(String.valueOf(f));
                            reslut.add(re.toString());
                            re.delete(0,re.length());
                        }
                    }
                }
            }
        }
    return reslut;
    }
}
相关推荐
Hard_Liquor23 分钟前
Datawhale秋训营-“大运河杯”数据开发应用创新大赛
人工智能·深度学习·算法
liu****25 分钟前
笔试强训(八)
开发语言·算法·1024程序员节
草莓工作室28 分钟前
数据结构14:查找
数据结构·算法
屈冠成2 小时前
C语言数组:编辑世界的坚固桥梁
c语言·开发语言·算法
应用市场2 小时前
STM32卡尔曼滤波算法详解与实战应用
人工智能·stm32·算法
启诚科技2 小时前
树上二分(树的重心)
c++·算法·二分·树的重心
风筝在晴天搁浅3 小时前
代码随想录 617.合并二叉树
数据结构·算法
AICodeThunder3 小时前
【S组篇】C++知识点总结(1):并查集基础
c语言·数据结构·c++·算法·图论
南方的狮子先生3 小时前
【逻辑回归】从线性模型到逻辑回归
算法·机器学习·逻辑回归
闻缺陷则喜何志丹3 小时前
【排序】P9127 [USACO23FEB] Equal Sum Subarrays G|普及+
c++·算法·排序·洛谷