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

把数字翻译成字符串

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

class Solution {
public:
    int solve(string nums) {
        if (nums.empty() || nums[0] == '0') return 0;

        int n = nums.size();
        vector<int> dp(n + 1, 0);
        dp[0] = 1; // 空字符串有一种解码方式
        dp[1] = 1; // 一个有效的数字(非0)有一种解码方式

        for (int i = 2; i <= n; i++) {
            int oneDigit = nums[i - 1] - '0';
            int twoDigits = (nums[i - 2] - '0') * 10 + oneDigit;

            if (oneDigit >= 1 && oneDigit <= 9) {
                dp[i] += dp[i - 1];
            }
            if (twoDigits >= 10 && twoDigits <= 26) {
                dp[i] += dp[i - 2];
            }
        }
        return dp[n];
    }
};

全部评论

相关推荐

神哥了不得:你简历字体有点不太协调呀,下面的字实在太小了呀,而且项目也不太行,建议换几个高质量的项目,面试会多很多
点赞 评论 收藏
分享
头像 会员标识
02-14 15:34
门头沟学院 Java
Java抽象带篮子:专业技能怎么写可以看看我发的帖子
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务