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);   //回溯算法关键一步,删掉最后一个元素
        }
    }
相关推荐
luckycoding几秒前
42. 接雨水
leetcode
喵手几秒前
Python爬虫实战:从天气抓取到机器学习预测气温!
爬虫·python·机器学习·爬虫实战·预测气温·零基础python爬虫教学·天气采集
We་ct2 分钟前
LeetCode 39. 组合总和:DFS回溯解法详解
前端·算法·leetcode·typescript·深度优先·个人开发·回溯
猿饵块5 分钟前
python--sys
开发语言·python
智能工业品检测-奇妙智能6 分钟前
linux 安装 FFmpeg 和windows安装 FFmpeg
linux·windows·ffmpeg
故河6 分钟前
Python工具:Conda 包管理器
开发语言·python·conda
Dontla7 分钟前
安装Miniconda安装(Windows)、conda虚拟环境创建、conda虚拟环境激活
windows·python
亦复何言??8 分钟前
ROS2 节点使用 Conda 环境运行 Python 依赖的解决方案
开发语言·python·conda
智驾1 小时前
Claude Code + vscode + deepseek在Windows环境上的搭建教程
windows·vscode·claude
acanab2 小时前
vscode对isaac lab开发时包不能正常导入的问题
vscode·python