解法一:
class Solution {
public List<String> letterCombinations(String digits) {
List<String> res = new ArrayList();
if(digits.length() == 0){
return res;
}
int len = digits.length();
for(int i = 0;i < len;i++){
String s = get(digits.charAt(i));
int l = res.size();
if(l == 0){
for (int j = 0; j < s.length(); j++) {
res.add(String.valueOf(s.charAt(j)));
}
}else {
ArrayList temp = new ArrayList();
temp.addAll(res);
for(int j = 0;j < s.length()-1;j++){
res.addAll(temp);
}
for(int k = 0;k < res.size();k++){
res.set(k,res.get(k) + s.charAt(k / l));
}
}
}
return res;
}
public String get(char i){
switch(i){
case '2' : return "abc";
case '3' : return "def";
case '4' : return "ghi";
case '5' : return "jkl";
case '6' : return "mno";
case '7' : return "qprs";
case '8' : return "tuv";
case '9' : return "wxyz";
}
return null;
}
}
4/17/26About 2 min