class Solution {public List<String> letterCombinations(String digits) {Map<Character, String> phone = new HashMap<Character, String>();
phone.put('2', "abc");
phone.put('3', "def");
phone.put('4', "ghi");
phone.put('5', "jkl");
phone.put('6', "mno");
phone.put('7', "pqrs");
phone.put('8', "tuv");
phone.put('9', "wxyz");
List<String> output = new ArrayList<String>();
for(int i = 0; i < digits.length(); i++) {String letter = phone.get(digits.charAt(i));
List<String> temp = new ArrayList<String>();
for(int j = 0; j < letter.length(); j++) {if(output.size() == 0) {temp.add(letter.substring(j, j+1));
}
else {for(String s : output) {temp.add(s+letter.substring(j, j+1));
}
}
}
output.clear();
output.addAll(temp);
temp.clear();}
return output;
}
}