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);   //回溯算法关键一步,删掉最后一个元素
        }
    }
相关推荐
数字化转型分享点滴4 小时前
机加工MES落地先连设备还是先上工单?一份车间实施参考
python·安全
阿皮 API4 小时前
Shopee虾皮商品详情API接口调用实战:Python获取东南亚商品数据与JSON解析
开发语言·python·json
鸿业远图科技4 小时前
大连市_公交线
python
青春不朽5124 小时前
Python 里 a is b 有时 True 有时 False?小整数缓存和常量折叠的底层真相
python·spring·缓存
高洁014 小时前
数字孪生、具身智能、世界模型三者交叉
人工智能·python·深度学习·机器学习
郝学胜-神的一滴4 小时前
NumPy深度解析|Python数值计算的基石,告别低效for循环
开发语言·人工智能·python·程序人生·numpy·量化投资
喵本喵叁肆5 小时前
diffprivlib 中文实战教程 · 第8讲:实战——从零改造一个 DP 模型
python·neo4j·差分隐私
是我知白哒5 小时前
下载的图片Windows上无法设置为屏保如何解决
windows
Smoothcloud润云5 小时前
PyTorch推理输入长度分桶与Padding优化实战:减少无效计算
人工智能·pytorch·python·深度学习·gpu算力
人邮异步社区5 小时前
C语言好学,还是Python好学?
c语言·开发语言·python