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

把数字翻译成字符串

https://www.nowcoder.com/practice/046a55e6cd274cffb88fc32dba695668

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 解码
     * @param nums string字符串 数字串
     * @return int整型
     */
   

public int solve (String nums) {
    if (nums.length() == 0 || nums.charAt(0) == '0')
        return 0;
    int[] dp = new int[nums.length()];
    dp[0] = 1;
    for (int i = 1; i < dp.length; i++) {
        if (nums.charAt(i) != '0') {
            dp[i] = dp[i - 1];
        }
        //  3 2 4
        int num = (nums.charAt(i - 1) - '0') * 10 + (nums.charAt(i) - '0');
        if (num >= 10 && num <= 26) {
            if (i == 1) {
                dp[i] += 1;
            } else {
                dp[i] += dp[i - 2];
            }
        }
    }
    return dp[nums.length() - 1];

}
}



有点奇怪,用动态规划的方法来解决这道题目,怎么不考虑100等情况呢。原来它这里初始数组里面每个元素的值就是0,所以不用考虑了。

全部评论

相关推荐

05-23 19:02
吉林大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务