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);   //回溯算法关键一步,删掉最后一个元素
        }
    }
相关推荐
m0_624578593 分钟前
SQL数据分析如何剔除极端异常值_配合窗口函数检测偏离度
jvm·数据库·python
川冰ICE6 分钟前
Python爬虫实战⑱|Pandas分组聚合,一键生成统计报表
爬虫·python·pandas
宠..7 分钟前
VS Code 修改 C++ 标准同时修改错误检测标准
java·linux·开发语言·javascript·c++·python·qt
2401_8800714010 分钟前
Redis怎样查询集群的整体健康状态_使用cluster info指令查看槽位覆盖率与节点状态
jvm·数据库·python
2301_8159019711 分钟前
Go语言如何写负载均衡器_Go语言负载均衡器实战教程【完整】
jvm·数据库·python
dFObBIMmai16 分钟前
Redis怎样定位每秒被高频访问的热点键
jvm·数据库·python
m0_6091604916 分钟前
golang如何实现负载均衡器组件_golang负载均衡器组件实现详解
jvm·数据库·python
m0_5913647320 分钟前
SQL如何解决GROUP BY导致查询变慢_利用覆盖索引进行优化
jvm·数据库·python
石榴树下的七彩鱼21 分钟前
AI抠图效果实测:基于Python的3种背景移除模型对比
开发语言·人工智能·python·ai抠图·石榴智能·背景移除·rmbg
洛水水21 分钟前
【力扣100题】39.二叉树的最近公共祖先
算法·leetcode·职场和发展