首先要根据输入的数字得到对应的字符串。
然后用回溯算法的三步。
1.确定递归函数的参数两个参数是输入的数字,和字符串数组,然后还需要一个参数来记录当前是在处理第几个数字。
2.递归终止条件当结果字符串的长度等于处理的数字的个数时,表示递归结束。将结果存入到结果中。
3.单层处理逻辑单层递归就是向path中加入字符,然后处理下一个数字,最后回溯把最后一个字符删除。
代码class Solution {
List res = new ArrayList<>();
public List letterCombinations(String digits) {
if (digits == null || digits.length() == 0) {
return res;
}
String[] numString = {"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
fun(digits,numString,0);
return res;
}
StringBuilder path = new StringBuilder();
public void fun(String digits,String[] numString,int nums){
if(nums==digits.length()){
res.add(path.toString());
return;
}
int intDigits = digits.charAt(nums)-'0';//获得单个int数字
String str = numString[intDigits];//得到对应的三个字符
for(int i = 0;i



