比较基本,思路也很容易....利用map存储Character和String的对应关系....利用函数递归每次选择一个char加入String向下递归即可....
public class Solution {
List<String> res = new ArrayList<String>();
Map<Character,String> mp = new HashMap<Character,String>();
public List<String> letterCombinations(String digits) {
mp.put('0',"");
mp.put('1',"");
mp.put('2',"abc");
mp.put('3',"def");
mp.put('4',"ghi");
mp.put('5',"jkl");
mp.put('6',"mno");
mp.put('7',"pqrs");
mp.put('8',"tuv");
mp.put('9',"wxyz");
String tmp="";
fun(digits,0,tmp);
return res;
}
void fun(String digits,int index,String s)
{
int len = digits.length();
if(index>=len)
{
res.add(s);
return ;
}
char c = digits.charAt(index);
String intToChar = mp.get(c);
for(int i=0;i<intToChar.length();i++ )
{
String tmp = s;
tmp += intToChar.charAt(i);
fun(digits,index+1,tmp);
}
}
}