leetcode 17 电话号码的字母组合
public static StringBuilder sb=new StringBuilder();
public static String[] numString = {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
public static List<String> result=new ArrayList<>();
public static List<String> letterCombinations(String digits){
result=new ArrayList<>();
if(digits==null||digits.length()==0) return result;
char[] nums = digits.toCharArray();
int k = nums.length;
backTracking(nums,k,0);
return result;
}
private static void backTracking(char[] nums, int k,int startIndex) {
if(sb.length()==k){
//sb=sb.append(numString[subIndex].charAt(2));
result.add(sb.toString());
return;
}
int subIndex = nums[startIndex]-'0';//转化成数字index
for(int i=0;i<numString[subIndex].length();i++){
sb = sb.append(numString[subIndex].charAt(i)); //通过numString 直接拿目标字串,再拿它字符
backTracking(nums,k,startIndex+1);
//sb = sb.replace(sb.length()-1,sb.length()-1," ");
sb.deleteCharAt(sb.length()-1);
}
}