Leetcode 17:电话号码的字母组合

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。

java 复制代码
public List<String> letterCombinations(String digits) {
        if (digits == null || digits.length() == 0) {
            return result;
        }
        int index=0;  //记录遍历digits的角标

        //初始对应所有的数字,为了直接对应2-9,新增了两个无效的字符串
        String[] str = {"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
        backtracking(str,digits,index);
        System.out.println(result);
        return result;
    }

    //回溯算法
    public void backtracking(String[] str,String digits,int index){

        //1.确定回溯中止条件
        if(index==digits.length()){
            result.add(path.toString());
            return;
        }


        //2.写回溯主体
        int digitsIndex=digits.charAt(index)-'0';  //通过减去'0',得到digits中index对应的角标
        String s=str[digitsIndex];
        for(int i=0;i<s.length();i++){
            path.append(s.charAt(i));  //将遍历字符拼接起来
            backtracking(str,digits,index+1);
            path.deleteCharAt(path.length()-1);   //回溯算法关键一步,删掉最后一个元素
        }
    }
相关推荐
benben044几秒前
ONNX从入门到精通大全
人工智能·pytorch·python
程序猿零零漆1 分钟前
Python 基础核心知识总结:函数、文件操作、异常、模块与常用内置模块
python
海棠AI实验室3 分钟前
AI 时代文献综述:从检索到成稿的 RAG 五步法
windows·算法·自动化·llm·rag
洛水水10 分钟前
【力扣100题】77.搜索二维矩阵
算法·leetcode·矩阵
枫叶林FYL10 分钟前
项目十一:Saga模式分布式旅行预订系统 核心服务实现与Saga编排器
数据库·python·docker
取名好樊10 分钟前
Windows Docker PostgreSQL 端口绑定失败问题记录
windows·docker·postgresql
流浪法师解剖鱼12 分钟前
CocosCreator制作推箱子游戏
python·cocos2d
c++之路14 分钟前
CMake 系列教程(三):变量、条件与控制流
java·windows·spring
财经资讯数据_灵砚智能17 分钟前
基于全球经济类多源新闻的NLP情感分析与数据可视化(夜间-次晨)2026年6月9日
人工智能·python·ai·信息可视化·自然语言处理·ai编程·灵砚智能