拨号键盘的字母组合问题
问题描述
给定一个数字串,返回这个数组串所表示的所有可能的字母组合。
数字和字母的映射关系类似于一个手机的拨号键盘,如图所示:
例如:输入数字串“23”
返回: [“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].
注意:虽然上述答案在返回时是按照字典字母顺序排列的,但是你可以按照你想要的顺序返回结果。
算法设计
代码片段(一种求解算法)
public static List<String> letterCombinations(String digits) {
List<String> result =new ArrayList<>();
if(digits == null || digits.isEmpty())
return result;
result.add("");
String []btns = {
"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
for(int i =0 ; i < digits.length() ;i++)
{
List<String> res = new ArrayList<>();
String letter = btns[digits.charAt(i)-'0'];
for(int j = 0 ; j < result.siz