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;
    }
}
相关推荐
搂鱼11451426 分钟前
(二分、思维)洛谷 P4090 USACO17DEC Greedy Gift Takers P 题解
算法
YSRM36 分钟前
Leetcode+Java+图论+岛屿问题
java·算法·leetcode·图论
悠哉悠哉愿意1 小时前
【数据结构与算法学习笔记】双指针
数据结构·笔记·python·学习·算法
C_lea2 小时前
链表转置算法
算法·链表
未知陨落2 小时前
LeetCode:89.分割等和子集
算法·leetcode
Cx330❀2 小时前
《C++ STL:vector类(下)》:攻克 C++ Vector 的迭代器失效陷阱:从源码层面详解原理与解决方案
开发语言·数据结构·c++·经验分享·算法
bawangtianzun2 小时前
树的重心与直径 性质
数据结构·c++·学习·算法
山猪打不过家猪3 小时前
(一)算法
java·开发语言·算法
乌萨奇也要立志学C++3 小时前
【洛谷】6 道题吃透堆的应用:模板堆、第 k 小、最小函数值等全攻略
算法
合作小小程序员小小店4 小时前
web网页开发,在线%推荐算法学院培养计划,图书推荐,基于Python,FlaskWeb,用户和物品推荐MySql
python·mysql·算法·flask·推荐算法