class Solution {
// 所有可能,全排列,回溯
List<String> res = new ArrayList<>();
String[] numbers = {"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
public List<String> letterCombinations(String digits) {
if (digits.length() == 0) {
return res;
}
backTracking(digits, 0);
return res;
}
StringBuffer sb = new StringBuffer();
public void backTracking(String digits, int num) {
if (num == digits.length()) {
res.add(sb.toString());
return;
}
int index = digits.charAt(num) - '0'; // 这里-'0'得到数字,不能用Inter.valueOf(),这是将字符串转为数字
String tmp = numbers[index];
for (int i = 0; i < tmp.length(); i++) {
sb.append(tmp.charAt(i));
backTracking(digits, num + 1);
sb.deleteCharAt(sb.length() - 1);
}
}
}