题目所属分类
动态规划 f[]表示能够解码的总数
按照i为一位数非0
和两位数 分类
原题链接
代码案例:输入:s = “12”
输出:2
解释:它可以解码为 “AB”(1 2)或者 “L”(12)。
示例 2:
题解
为了方便也可以在字符串中加入一个空格
这样下面的s.charAt(i-1)括号里面换成i i-2 对应换成i-1
class Solution {
public int numDecodings(String s) {
int n = s.length();
int[] f = new int[n+10];
f[0] = 1 ;
for(int i = 1 ; i<= n ;i++){
if(s.charAt(i-1)!= '0'){
f[i] += f[i-1];
}
if(i > 1 ){
int t = (s.charAt(i-2)- '0')*10 + s.charAt(i-1)-'0';
if(t >= 10 && t <= 26){
f[i] += f[i-2];
}
}
}
return f[n];
}
}