题解 | #把数字翻译成字符串#
把数字翻译成字符串
https://www.nowcoder.com/practice/046a55e6cd274cffb88fc32dba695668
状态表示:f[i] (表示前i位字符所有的组合情况)
状态转移:分为两种情况:1. 第i位自己组合 2. 第i位与第i-1位组合
注意:1. 第一种情况第i位不能为零!!!2. 第i位与第i-1位组合时数字要在10-26之间,也就是不能有非法的前置零!!!
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 解码
* @param nums string字符串 数字串
* @return int整型
*/
public int solve (String nums) {
// write code here
int n = nums.length();
int[] f = new int[n + 1];
f[0] = 1;
for (int i = 1; i <= n; i ++ ) {
if (nums.charAt(i - 1) != '0') {
f[i] = f[i - 1];
}
if (i > 1) {
int t = (nums.charAt(i - 2) - '0') * 10 + nums.charAt(i - 1) - '0';
if (t >= 10 && t <= 26) f[i] += f[i - 2];
}
}
return f[n];
}
}
