给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
示例:
输入:"23"
输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
public class ABCTest {
private String[] map = {
"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"
};
public List<String> letterCombinations(String digits){
List<String> ans =new ArrayList<>();
if(digits!=null && digits.length()>0)
qaq(ans,"",digits);
return ans;
}
public void qaq(List<String>ans, String cur, String digits) {
if(cur.length()==digits.length()) {
ans.add(cur);
return ;
}
int index = digits.charAt(cur.length())-'0';
for(int i=0;i<map[index].length();i++) {
qaq(ans,cur+map[index].charAt(i),digits);
}
}
}