题解 | #把数字翻译成字符串#
把数字翻译成字符串
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]; } }