LeetCode热题100(电话号码的字母组合)

题目描述

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

给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

题解思路:

java 复制代码
class Solution {
    List<String> res = new ArrayList<>();
    public List<String> letterCombinations(String digits) {
        if(digits == null || digits.length() == 0){
            return res;
        }
        String[] numString = {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
        helper(digits,numString,0);
        return res;
    }
    StringBuilder temp = new StringBuilder();
    public void helper(String digits,String[] numString,int num){
        if(num == digits.length()){
            res.add(temp.toString());
            return;
        }
        String str = numString[digits.charAt(num)-'0'];
        for(int i = 0; i <str.length();i++){
            temp.append(str.charAt(i));
            helper(digits,numString,num+1);
            temp.deleteCharAt(temp.length() - 1);
        }
    }
}

可以对比之前子集的处理思路是类似,这里比较巧妙的是吧数字和字符串做了影射。

相关推荐
Nil20820 分钟前
leetcode 98验证二叉搜索树
算法·leetcode·职场和发展
时针滴滴答啊5 小时前
最大子数组和
算法·leetcode·职场和发展
重生之后端学习6 小时前
15. 三数之和[中等]✅
java·数据结构·算法·leetcode·职场和发展
Nil2087 小时前
leetcode 108有序数组转换为二叉搜索树
数据结构·算法·leetcode
hn小菜鸡7 小时前
LeetCode 763、划分字母区间
数据结构·算法·leetcode
土司大王9 小时前
LeetCode hot100——相交链表
算法·leetcode·链表
土司大王9 小时前
LeetCode hot100——回文链表
算法·leetcode·链表
evans在进步11 小时前
LeetCode 1143:最长公共子序列——Java 二维动态规划详解
java·leetcode·动态规划
重生之后端学习21 小时前
283. 移动零[简单]✅
开发语言·数据结构·算法·leetcode·职场和发展
旖旎夜光1 天前
LeetCode 852:山脉数组的峰顶索引(二分查找) —— 题解
数据结构·c++·算法·leetcode·二分查找