题解 | #把数字翻译成字符串# 注释明了,思路清晰

把数字翻译成字符串

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

class Solution:
    def solve(self , nums: str) -> int:
        l = len(nums)
        dp = [1 for _ in range(l+1)]
        for i in range(1, l+1):
            if i == 1:
                # 如果第一个数字是0,不存在可行的翻译
                if nums[i-1] == '0':
                    return 0
            else:
                # 任何一个’0‘,都依赖于其前面一个数字,先讨论当前数字为0的情况
                if nums[i-1] == '0':
                    # 如果当前0不能和前一个数字组合
                    if (int(nums[i-2]) > 2 or nums[i-2] == '0'):
                        return 0
                    # 当前0和前一个数字组合
                    else:
                        dp[i] = dp[i-2]
                # 再讨论当前数字不为0的情况
                else:
                    # 如果当前数字不能和前一个数字组合
                    if nums[i-2] == '0' or int(nums[i-2]+nums[i-1]) > 26:
                        dp[i] = dp[i-1]
                    # 当前数字和前一个数字组合或者不组合
                    else:
                        dp[i] = dp[i-2] + dp[i-1]    
        return dp[-1]

全部评论
很理想的代码了
点赞 回复 分享
发布于 2023-06-25 15:32 贵州

相关推荐

牛舌:如果我不想去,不管对方给了多少,我一般都会说你们给得太低了。这样他们就会给下一个offer的人更高的薪资了。
点赞 评论 收藏
分享
整顿职场的柯基很威猛:这种不可怕,最可怕的是夹在一帮名校里的二本选手,人家才是最稳的。
点赞 评论 收藏
分享
评论
5
2
分享
牛客网
牛客企业服务