题解 | #把数字翻译成字符串#

把数字翻译成字符串

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];
    }
}
全部评论

相关推荐

12-13 22:40
后端
第3个offer!
虾孝女autumn:接好运
点赞 评论 收藏
分享
10-21 23:48
蚌埠坦克学院
csgq:可能没hc了 昨天一面完秒挂
点赞 评论 收藏
分享
Natrium_:这时间我以为飞机票
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务