publicvoidbacktrack(String combination, String next_digits){ // if there is no more digits to check if (next_digits.length() == 0) { // the combination is done output.add(combination); } // if there are still digits to check else { // iterate over all letters which map // the next available digit String digit = next_digits.substring(0, 1);//返回第一个数字 String letters = phone.get(digit); for (int i = 0; i < letters.length(); i++) {//letters表示该数字在phone中对应的字符串 String letter = phone.get(digit).substring(i, i + 1); // append the current letter to the combination // and proceed to the next digits backtrack(combination + letter, next_digits.substring(1)); } } }
public List<String> letterCombinations(String digits){ if (digits.length() != 0) backtrack("", digits); return output; } }