import java.util.ArrayList;
import java.util.List;
public class Solution {
public List<String> letterCombinations(String digits) {
int size=digits.length();
List<String> res=new ArrayList<String>();
if(size==0)
return res;
String[] map = new String[] {
" ",
"1", "abc", "def",
"ghi", "jkl", "mno",
"pqrs", "tuv", "wxyz"
};
int index=0;
StringBuilder temp=new StringBuilder();
bfs(digits,size,index,res,temp,map);
return res;
}
public void bfs(String digits,int size,int index,List<String> res,StringBuilder temp,String[] map)
{
if(size==index)
{
//表示已经完成了一个字符串的拼接了
res.add(temp.toString());
return ;
}
char c=digits.charAt(index);
for(int j=0;j<map[c-'0'].length();j++)
{
index++;
temp.append(map[c-'0'].charAt(j));
bfs(digits,size,index,res,temp,map);
temp.deleteCharAt(temp.length()-1);
index--;
}
}
}