标签:style http color os io java ar strong for
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 {
public List<String> letterCombinations(String digits)
{
Set<String> set = new HashSet<String>(digits.length() * 5);
Set<String> tmpSet = new HashSet<String>(digits.length() * 5);
Set<String> p;
Map<Character, String> map = new HashMap<Character, String>(digits.length() * 2);
map.put('2', "abc");
map.put('3', "def");
map.put('4', "ghi");
map.put('5', "jkl");
map.put('6', "mno");
map.put('7', "pqrs");
map.put('8', "tuv");
map.put('9', "wxyz");
set.add("");
for (char c : digits.toCharArray())
{
if (map.containsKey(c))
{
char array[] = map.get(c).toCharArray();
for (String s : set)
{
for (char element : array)
{
tmpSet.add(s+element);
}
}
p=tmpSet;
tmpSet=set;
set=p;
tmpSet.clear();
}
}
List<String> result = new LinkedList<String>();
result.addAll(set);
return result;
}
}Letter Combinations of a Phone Number
标签:style http color os io java ar strong for
原文地址:http://blog.csdn.net/jiewuyou/article/details/39138407