public static List<String> letterCombinations(String digits) {
List<String> list1 = new ArrayList<String>();
List<String> list2 = new ArrayList<String>();
List<String> list = list1;
List<String> listtmp = list2;
List<String> listcc = null;
if(digits == null || digits.length() == 0) {
return list;
}
String[] a = new String[]{
"","","abc","def",
"ghi","jkl","mno",
"pqrs","tuv","wxyz"
};
int len = digits.length();
for(int i = 0; i < len ; i++) {
String str = a[char2num(digits.charAt(i))];
int strLen = str.length();
if(strLen != 0) {
if(!list.isEmpty()) {
listtmp.clear();
for(int j = 0; j < list.size(); j++) {
String strTmp = list.get(j);
for(int k = 0; k < strLen; k++) {
listtmp.add(strTmp + str.charAt(k));
}
}
list.clear();
listcc = listtmp;
listtmp = list;
list = listcc;
}else {
for(int j =0 ; j < strLen; j++){
list.add(String.valueOf(a[char2num(digits.charAt(i))].charAt(j)));
}
}
}
}
return list;
}
public static int char2num(char c) {
int i = 0;
switch(c) {
case '0' :i =0 ;break;
case '1' :i =1 ;break;
case '2' :i =2 ;break;
case '3' :i =3 ;break;
case '4' :i =4 ;break;
case '5' :i =5 ;break;
case '6' :i =6 ;break;
case '7' :i =7 ;break;
case '8' :i =8 ;break;
case '9' :i =9 ;break;
}
return i;
}
17. Letter Combinations of a Phone Number
最新推荐文章于 2024-09-09 17:22:03 发布