文章目录
17. 电话号码的字母组合
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
示例 1:
输入:digits = “23”
输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]
示例 2:
输入:digits = “”
输出:[]
示例 3:
输入:digits = “2”
输出:[“a”,“b”,“c”]
提示:
0 <= digits.length <= 4
digits[i] 是范围 [‘2’, ‘9’] 的一个数字。
解题
方法:回溯
先用哈希表建立数字与字符的对应关系
然后遍历digits中每个字符对应的数字,找到对应的字符,在进行下一个数字(穷举)深度优先遍历
当往上返回时,注意删除已经添加的字符串
时间复杂度:O(3^ m×4^ n)
空间复杂度:O(m+n)
class Solution {
public List<String> letterCombinations(String digits) {
// 初始化结果
List<String> result = new ArrayList<String>();
if(digits