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);   //回溯算法关键一步,删掉最后一个元素
        }
    }
相关推荐
全栈弄潮儿13 分钟前
Python实战第8期:函数
后端·python·编程语言
卷无止境2 小时前
暗流与破局:AI时代的代码安全审查工具全景指南
后端·python
卷无止境4 小时前
一人公司的全栈选型指南:让 AI Agent 写得快,也让生意跑得稳
后端·python
滴啦嘟啦哒6 小时前
【具身笔记】【π0.5 微调与仿真】五、在MuJoCo中实现可视化仿真
笔记·python·vla·具身
Uncertainty!!6 小时前
Windows 10 与 Ubuntu 22.04 通过 Samba 共享文件夹
windows·ubuntu·共享文件夹
全栈练习生6 小时前
AI安全与红队测试
python·ai
费曼学习法7 小时前
把「发送成功」当「送达」?我排查 IM 长消息被静默吞掉的完整过程
python·ai编程·自动化运维
鸽鸽程序猿7 小时前
【项目】【在线判题系统】b端题目增删改
开发语言·python
NetX行者7 小时前
Python 工程化入门:从脚本到规范的 Python 项目结构
网络·python
MasonYyp7 小时前
asyncio并发协程
python