剑指 Offer 46. 把数字翻译成字符串
# 剑指 Offer 46. 把数字翻译成字符串 (opens new window)
# 1.分治+搜索
分析:使用递归方法,以a作为翻译数字的起点,要么将数字a翻译,要么将数字ab翻译。最终统计搜索树的所有分支。
class Solution {
public int translateNum(int num) {
return dfs(String.valueOf(num));
}
public int dfs(String str){
if(str.length()==0||str.length()==1) return 1;
if(str.length()>=2){
String s=str.substring(0,2);
if(Integer.valueOf(s)>=10&&Integer.valueOf(s)<=25){
return dfs(str.substring(1))+dfs(str.substring(2));
}
}
return dfs(str.substring(1));
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
编辑 (opens new window)
上次更新: 2023/12/15, 15:49:57