一、题目
二、代码
class Solution
{
String str2 = "abc";
String str3 = "def";
String str4 = "ghi";
String str5 = "jkl";
String str6 = "mno";
String str7 = "pqrs";
String str8 = "tuv";
String str9 = "wxyz";
List<String> re_list = new LinkedList<>();
StringBuilder str_bu = new StringBuilder();
public List<String> letterCombinations(String digits)
{
if(digits.length()==0) return re_list;
back(digits,0);
System.out.println(" digits.length() "+digits.length());
return re_list;
}
public void back(String digits, int start)
{
if(start>digits.length()) return ;
if(start == digits.length())
{
System.out.println(" 添加时 start "+start);
System.out.println(" str_bu "+str_bu);
re_list.add(str_bu.toString());
return ;
}
int i,j;
int length = digits.length();
char temp_char = digits.charAt(start);
if(temp_char == '2')
{
int small_length = str2.length();
for(j=0;j<small_length;j++)
{
str_bu.append(str2.charAt(j));
back(digits,start+1);
str_bu.deleteCharAt(str_bu.length()-1);
}
}
else if(temp_char == '3')
{
int small_length = str3.length();
for(j=0;j<small_length;j++)
{
str_bu.append(str3.charAt(j));
back(digits,start+1);
str_bu.deleteCharAt(str_bu.length()-1);
}
}
else if(temp_char == '4')
{
int small_length = str4.length();
for(j=0;j<small_length;j++)
{
str_bu.append(str4.charAt(j));
back(digits,start+1);
str_bu.deleteCharAt(str_bu.length()-1);
}
}
else if( temp_char == '5')
{
int small_length = str5.length();
for(j=0;j<small_length;j++)
{
str_bu.append(str5.charAt(j));
back(digits,start+1);
str_bu.deleteCharAt(str_bu.length()-1);
}
}
else if(temp_char == '6')
{
int small_length = str6.length();
for(j=0;j<small_length;j++)
{
str_bu.append(str6.charAt(j));
back(digits,start+1);
str_bu.deleteCharAt(str_bu.length()-1);
}
}
else if(temp_char == '7')
{
int small_length = str7.length();
for(j=0;j<small_length;j++)
{
str_bu.append(str7.charAt(j));
back(digits,start+1);
str_bu.deleteCharAt(str_bu.length()-1);
}
}
else if(temp_char == '8')
{
int small_length = str8.length();
for(j=0;j<small_length;j++)
{
str_bu.append(str8.charAt(j));
back(digits,start+1);
str_bu.deleteCharAt(str_bu.length()-1);
}
}
else if(temp_char == '9')
{
int small_length = str9.length();
for(j=0;j<small_length;j++)
{
str_bu.append(str9.charAt(j));
back(digits,start+1);
str_bu.deleteCharAt(str_bu.length()-1);
}
}
}
}
三、运行结果
=