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);   //回溯算法关键一步,删掉最后一个元素
        }
    }
相关推荐
dFObBIMmai1 分钟前
html怎么用inert属性禁用_HTML如何通过Inert暂停交互区域
jvm·数据库·python
X56613 分钟前
CSS如何实现一致的圆角半径设计_通过CSS变量存储border-radius
jvm·数据库·python
洛水水3 分钟前
【力扣100题】19. 排序链表 | 归并排序详解
算法·leetcode·链表
扬帆破浪4 分钟前
免费开源AI软件.桌面单机版,可移动的AI知识库,察元 AI桌面版:公司只允许装签名应用 给察元AI打企业内部分发包
人工智能·windows·电脑·知识图谱
布朗克1685 分钟前
Claude Code 2026中文教程指南入门:Mac/Windows安装配置全攻略
windows·macos·claude·code
it's all you6 分钟前
Windows 10 安装 Docker Desktop 完整教程(含常见问题排查)
windows·docker·容器
洛水水6 分钟前
【力扣100题】21. LRU 缓存
spring·leetcode·缓存
凯瑟琳.奥古斯特7 分钟前
丑数II C++三指针解法(力扣264)
数据结构·c++·算法·leetcode·职场和发展
深度学习lover7 分钟前
<数据集>yolo 桃子识别<目标检测>
人工智能·python·yolo·目标检测·计算机视觉·桃子识别
2301_795099748 分钟前
防范SQL注入的SQL编码规范_禁用动态拼接字符串语句.txt
jvm·数据库·python