133.电话号码的字母组合

java 复制代码
class Solution {
    HashMap<Character,String> hm=new HashMap<>();
    List<String> res=new ArrayList<>();
    StringBuilder path=new StringBuilder();
    public List<String> letterCombinations(String digits) {
        if(digits==null||digits.length()==0){
            return res;
        }
        hm.put('1',"");
        hm.put('2',"abc");
        hm.put('3',"def");
        hm.put('4',"ghi");
        hm.put('5',"jkl");
        hm.put('6',"mno");
        hm.put('7',"pqrs");
        hm.put('8',"tuv");
        hm.put('9',"wxyz");
        hm.put('0',"");
        slout(digits,digits.length(),0);
        return res;
    }
    void slout(String digits,int le,int startIndex){
        if(path.length()==le){
            res.add(path.toString());
            return;
        }
        String st=hm.get(digits.charAt(startIndex));
        for(int i=0;i<st.length();i++){
            path.append(st.charAt(i));
            slout(digits,le,startIndex+1);
            path.deleteCharAt(path.length()-1);
        }
    }
}
python 复制代码
class Solution(object):
    def letterCombinations(self, digits):
        hm={
            '1':"",
            '2':"abc",
            '3':"def",
            '4':"ghi",
            '5':"jkl",
            '6':"mno",
            '7':"pqrs",
            '8':"tuv",
            '9':"wxyz",
            '0':"",
        }
        res=[]
        path=[]
        def slout(digits,le,startIndex):
            if len(path)==le:
                res.append("".join(path))
                return
            st=hm[digits[startIndex]]
            for i in range(len(st)):
                path.append(st[i])
                slout(digits,le,startIndex+1)
                path.pop()
        if digits is None or len(digits)==0:
            return res
        slout(digits,len(digits),0)
        return res
相关推荐
冒泡P几秒前
【Lua热更新】上篇
开发语言·数据结构·unity·c#·游戏引擎·lua
Q_19284999066 分钟前
基于Spring Boot的远程教育网站
java·spring boot·后端
geovindu15 分钟前
Connecting to Oracle 11g Database in Python
数据库·python·oracle
我不想写昵称15 分钟前
【基础篇】1. JasperSoft Studio编辑器与报表属性介绍
java·后端·报表·jasperreport
A_Tai233333333 分钟前
贪心算法解决分发糖果问题
算法·贪心算法
爱学测试的李木子33 分钟前
性能】JDK和Jmeter的安装与配置
java·开发语言·软件测试·测试工具·jmeter
百年孤独_35 分钟前
高阶:基于Python paddleocr库 提取pdf 文档高亮显示的内容
开发语言·python·pdf
softshow102636 分钟前
Solon 集成 activemq-client
java·activemq·java-activemq
组合缺一39 分钟前
solon 集成 activemq-client (sdk)
java·solon·activemq
B站计算机毕业设计超人1 小时前
计算机毕业设计hadoop+spark视频推荐系统 短视频推荐系统 视频流量预测系统 短视频爬虫 视频数据分析 视频可视化 视频大数据 大数据
大数据·人工智能·python·机器学习·课程设计·数据可视化·推荐算法