class Solution {
List<String> ans = new ArrayList<>();
构建map存放元素
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");
}};
方法入口
public List<String> letterCombinations(String digits) {
if (digits.length() == 0 || digits == null)
return ans;
dfs(digits, 0, "");
return ans;
}
递归方法
public void dfs(String digits, int step, String answer) {
if (step == digits.length()) {
ans.add(answer);
return;
}
char c = digits.charAt(step);
String value = map.get(c + "");
for (int i = 0; i < value.length(); i++) {
dfs(digits, step + 1, answer + value.charAt(i));
}
}
}
实际上是一个树形结构
a b c
d e f d e f d e f
g h i g h i g h i 。。。。
来源:https://www.cnblogs.com/qinyuguan/
递归法----解决手机号码问题
最新推荐文章于 2024-04-30 00:36:57 发布