classSolution{List<String> res =newArrayList<>();StringBuilder sb =newStringBuilder();String[] strNum ={"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};publicList<String>letterCombinations(String digits){// res = new ArrayList<>();// sb = new StringBuilder();if(digits ==null|| digits.length()==0)return res;backtracking(digits,0);return res;}publicvoidbacktracking(String digits,int index){if(digits.length()== index){
res.add(sb.toString());//当输入的数字字符串都遍历到时,则添加到结果集。return;}int digit = digits.charAt(index)-'0';//index的目的是提取单个数字,并依据index查找该数字所包含的字母组合。String letter = strNum[digit];//根据寻找到的digit将包含的字母组合提取出来。for(int i =0; i < letter.length(); i++){
sb.append(letter.charAt(i));backtracking(digits, index +1);
sb.deleteCharAt(sb.length()-1);}}}