hot100-61电话号码的字母组合

一、题目

给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合,答案可以按任意顺序返回。

给出数字和字母的映射,1不对应任何字母。

二、思路

1、通过回溯法,对每个数字依次尝试其对应的所有字母,构建所有可能的组合,直到完成整个字符串的映射。

三、代码

java 复制代码
class Solution {
    private String[] map ={"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
    public List<String> letterCombinations(String digits) {
        List<String> res = new ArrayList<>();
        if(digits == null || digits.length()==0){
            return res;
        }
        backtracing(digits,0,new StringBuilder(),res);
        return res;
    }
    public void backtracing(String digits,int index,StringBuilder path,List<String> res){
        //终止条件:当前处理到第index个字符,如果 index == digits.length()表示已经处理完所有的数字,路径完整
        if(index == digits.length()){
            res.add(path.toString());
            return;
        }
        //获取当前数字对应的字母列表
        char digit = digits.charAt(index);//当前数字字符
        String letters = map[digit - '0'];//转为索引
        //尝试当前数字的每一个字母
        for(char c : letters.toCharArray()){
            path.append(c);
            backtracing(digits,index+1,path,res);
            path.deleteCharAt(path.length() - 1);
        }
    }
}
相关推荐
smj2302_796826523 分钟前
解决leetcode第3911题.移除子数组元素后第k小偶数
数据结构·python·算法·leetcode
山甫aa23 分钟前
差分数组 ----- 从零开始的数据结构
数据结构
早日退休!!!31 分钟前
《数据结构选型指南》笔记
数据结构·数据库·oracle
九转成圣1 小时前
Java 性能优化实战:如何将海量扁平数据高效转化为类目字典树?
java·开发语言·json
丑八怪大丑1 小时前
Java数据结构与集合源码
数据结构
直奔標竿1 小时前
Java开发者AI转型第二十七课!Spring AI 个人知识库实战(六)——全栈闭环收官,解锁前端流式渲染终极技巧
java·开发语言·前端·人工智能·后端·spring
金銀銅鐵2 小时前
[java] 编译之后的记录类(Record Classes)长什么样子(上)
java·jvm·后端
野生技术架构师3 小时前
金三银四面试总结篇,汇总 Java 面试突击班后的面试小册
java·面试·职场和发展
_深海凉_4 小时前
LeetCode热题100-寻找两个正序数组的中位数
算法·leetcode·职场和发展