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);   //回溯算法关键一步,删掉最后一个元素
        }
    }
相关推荐
夕除3 分钟前
spring boot 3
windows
十年之少3 分钟前
使用VSCode 对PyQt5 say Hello—— Python + Qt 开发
vscode·python·qt
70asunflower7 分钟前
6.1 图表选择指南
python·信息可视化·数据挖掘·数据分析
洛水水11 分钟前
【力扣100题】28. 翻转二叉树
算法·leetcode
被放养的研究生13 分钟前
Windows 与 Linux 文件系统区别及常见对应关系
linux·运维·windows
次元工程师!19 分钟前
LangFlow开发(一)—安装和部署
git·python·大模型·langflow
deephub25 分钟前
Feature Engineering 实战:Pandas + Scikit-learn的机器学习特征工程的完整代码示例
人工智能·python·机器学习·pandas·scikit-learn
code_pgf28 分钟前
Python `asyncio` 与 C++ Fiber 的原理与逻辑分析
c++·人工智能·python
张二娃同学29 分钟前
第03篇_CNN图像识别入门
人工智能·python·神经网络·cnn
2601_9536603734 分钟前
List系列集合:
windows