题目

分析

常规的递归操作,是一个枚举过程

代码

import java.util.*;
public class Solution {
     public ArrayList<String> letterCombinations(String digits) {
        String[] map = {"abc","def", "ghi","jkl","mno","pqrs","tuv","wxyz"};
        String[] strs=new String[digits.length()];
        for(int i=0;i<digits.length();i++)
        {
            int temp=Integer.parseInt(String.valueOf(digits.charAt(i)));
            strs[i]=map[temp-2];
        }
        ArrayList<String> res=new ArrayList<>();
        f("",strs,0,res);
        return res;
    }
    public static void f(String str,String[] strs,int index,ArrayList<String> res)
    {
        if(index==strs.length)
        {
            res.add(str);
            return ;
        }
        for(int i=0;i<strs[index].length();i++)
        {
            String temp=String.valueOf(strs[index].charAt(i));
            f(str+temp,strs,index+1,res);
        }
    }
}

完成情况

1次