您的位置:首页 > 其它

Letter Combinations of a Phone Number

2014-08-06 13:45 218 查看
Given a digit string, return all possible letter combinations that the number could represent.

A mapping of digit to letters (just like on the telephone buttons) is given below.



Input:Digit string "23"
Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].

Note:
Although the above answer is in lexicographical order, your answer could be in any order you want.

public class Solution {
String[] c={    "",
"",
"abc",
"def",
"ghi",
"jkl",
"mno",
"pqrs",
"tuv",
"wxyz"  };
public List<String> letterCombinations(String digits) {
ArrayList<String> result = new ArrayList<String>();
search(digits, 0, new StringBuilder(), result);
return result;
}

public void search(String dig, int index, StringBuilder sb, ArrayList<String> result){
if(index == dig.length()){
result.add(sb.toString());
return;
}
int num = dig.charAt(index) - '0';
for(int i = 0; i < c[num].length(); i ++){
StringBuilder sbs = new StringBuilder(sb);
sbs.append(c[num].charAt(i));
search(dig, index + 1, sbs, result);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: