leetcode-17-电话号码的字母组合

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。
给出数字到字母的映射如下(与电话按键相同)。
> 注意 1 不对应任何字母。

示例:

输入:"23"		(2: abc  3: def)

输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
采用深度优先遍历完成
private String[] letterMap = {" ","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
public List<String> letterCombinations(String digits) {
	List<String> res = new ArrayList<>();
	if(digits.equals("")) return res;
	findCombinations(digits, 0, "", res);
	return res;
}
private void findCombinations(String digits, int index, String s, List<String> res){
	if(digits.length() == index){
		res.add(s);
		return;
	}
	String str = letterMap[digits.charAt(index) - '0'];
	for(int i=0; i<str.length(); i++){
		findCombinations(digits, index+1, s+str.charAt(i), res);
	}
	return;
}


版权声明:本文为m0_49293816原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。