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);   //回溯算法关键一步,删掉最后一个元素
        }
    }
相关推荐
weixin_568996061 分钟前
Python开发Flask项目如何部署到云服务器_使用Fabric自动化发布脚本
jvm·数据库·python
m0_596406372 分钟前
Python中正确声明、重新赋值并安全使用None变量的完整指南
jvm·数据库·python
Word码3 分钟前
QQ音乐自动化测试实战指南
python·功能测试·测试工具·pycharm·集成测试
lclin_20204 分钟前
大恒Windows上GigE网口相机固定IP设置
windows·机器视觉·工业相机·大恒相机·galaxysdk
m0_716430075 分钟前
实现 Flex 容器内子元素自适应高度并启用自动滚动
jvm·数据库·python
weixin_381288185 分钟前
c++怎么在写入文本文件时自动将所有的制表符统一转换为四格空格【实战】
jvm·数据库·python
聆风吟º6 分钟前
【Python编程日志】Python入门基础(二):行 | 缩进 | print输出
开发语言·python·print··缩进
m0_743623927 分钟前
MySQL导入大SQL文件报错怎么办_拆分文件与优化系统参数
jvm·数据库·python
weixin_424999368 分钟前
组件懒加载如何处理 JS 报错后的重试加载?保障应用高可用性实战
jvm·数据库·python
baidu_340998829 分钟前
SQL中如何通过视图实现行级加密_CASE WHEN语句的妙用
jvm·数据库·python