号码回溯(更像全排列)
public class Test {
Map<String,String> map = new HashMap<String,String>(){
{
put("2", "abc");
put("3", "def");
put("4", "ghi");
put("5", "jkl");
put("6", "mno");
put("7", "pqrs");
put("8", "tuv");
put("9", "wxyz");
}
};
List<String> list = new ArrayList<>();
void backtrack(String currentCombination,String next_str)
{
if(next_str.equals(""))
{
list.add(currentCombination);
return;
}
else
{
String s = next_str.substring(0,1);
s = map.get(s);
for(int i=0;i<s.length();i++)
{
backtrack(currentCombination+s.substring(i,i+1),next_str.substring(1));
}
}
}
@org.junit.Test
public void Test()
{
backtrack("","23");
for (String s : list) {
System.out.println(s);
}
}
}