leetcode.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'] 的一个数字。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/letter-combinations-of-a-phone-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution {
List<String>list=new ArrayList();
public List<String> letterCombinations(String digits) {
if(digits==null||digits.length()==0){
return list;
}
String[]numString={"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
backTraning(digits,numString,0);
return list;
}
StringBuilder temp=new StringBuilder();
public void backTraning(String digits,String[]numString,int num){
if(num==digits.length()){
list.add(temp.toString());
return;
}
String str=numString[digits.charAt(num)-'0'];
for(int i=0;i<str.length();i++){
temp.append(str.charAt(i));
backTraning(digits,numString,num+1);
temp.deleteCharAt(temp.length()-1);
}
}
}

浙公网安备 33010602011771号