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);   //回溯算法关键一步,删掉最后一个元素
        }
    }
相关推荐
WL_Aurora10 小时前
Python爬虫实战(三):水果行情网站大规模分页爬取
爬虫·python
神明93110 小时前
如何处理ORA-01152报错_恢复未完成导致的数据文件仍需介质恢复
jvm·数据库·python
m0_5967490910 小时前
mysql如何导出特定条件的查询数据_使用mysqldump加where参数
jvm·数据库·python
Pocker_Spades_A10 小时前
Python快速入门专业版(五十八)——正则表达式(re):爬虫文本提取利器(从语法到实战)
爬虫·python·正则表达式
还是鼠鼠10 小时前
AI掘金头条新闻系统 (Toutiao News)-获取新闻分类
后端·python·mysql·fastapi·web
m0_6908258210 小时前
c++ RAII机制详解 c++如何利用RAII管理资源
jvm·数据库·python
小郑加油11 小时前
python学习Day13:实际应用——pandas 进阶计算
python·学习·pandas
熊猫_豆豆11 小时前
基于真实火星探测任务的实际轨道设计(Python版)
python·天体物理·火星探测器轨迹·数学物理
YL2004042611 小时前
046二叉树展开为链表
数据结构·leetcode·链表