题目描述:给定一个仅包含数字 2-9
的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
编码实现:
public List<String> letterCombinations(String digits) {
LinkedList<String> result = new LinkedList<>();
if (null == digits || digits.isEmpty()){
return result;
}
char[][] tab = {{'a', 'b', 'c'}, {'d', 'e', 'f'}, {'g', 'h', 'i'},
{'j', 'k', 'l'}, {'m', 'n', 'o'}, {'p', 'q', 'r', 's'},
{'t', 'u', 'v'}, {'w', 'x', 'y', 'z'}};
result.add("");
while (result.peek().length() != digits.length()) {
String remove = result.poll();
char[] chars = tab[digits.charAt(remove.length()) - '2'];
for (int i = 0; i < chars.length; i++) {
result.add(remove + chars[i]);
}
}
return result;
}