题目描述
给定一个数字字符串,返回数字所有可能表示的字母组合。
数字到字母的映射和电话号码一样.
输入:数字字符串 "23"
输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
解:
递归0.0
java代码:
class Solution {
String[][] myDic = {{},{},{"a","c","b"},{"d","e","f"},{"g","h","i"},{"j","k","l"},{"m","n","o"},{"p","q","r","s"},{"t","u","v"},{"w","x","y","z"}};
public List<String> letterCombinations(String digits) {
List<String> list = new ArrayList<String>();
if(digits.equals("")){
return list;
}else{
recur(list, digits, "");
return list;
}
}
private void recur(List<String> list, String digits, String s){
if(digits.length() == 0){
list.add(s);
return;
}
int ind = Integer.parseInt(digits.substring(0, 1));
for(String s1:myDic[ind]){
recur(list, digits.substring(1, digits.length()), s+s1);
}
}
}