1import java.util.ArrayList;2import java.util.List;3
4class Solution {5 public List<String> letterCombinations(String digits) {6 List<String> res = new ArrayList<>();7 if (digits.isEmpty()) return res;8 String[] keys = {"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};9 10 res.add("");11 for (char d : digits.toCharArray()) {12 List<String> next = new ArrayList<>();13 for (String prefix : res) {14 for (char ch : keys[d - '0'].toCharArray()) {15 next.add(prefix + ch);16 }17 }18 19 res = next;20 }21 return res;22 }23}