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

把数字翻译成字符串

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

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 解码
# @param nums string字符串 数字串
# @return int整型
#
class Solution:
    def solve(self, nums: str) -> int:
        # write code here
        if nums == "0":#为0的情况,无法被翻译
            return 0
        if nums == "10" or nums == "20":#10或20,只有一种情况
            return 1
        for i in range(1, len(nums)):#寻找字符串中所有不符合条件数字,若有则无法翻译
            if nums[i] == "0" and nums[i - 1] != "1" and nums[i - 1] != "2":
                return 0
        dp = [1] * (len(nums) + 1)
        for i in range(2, len(nums) + 1):
            if nums[i - 2] == "1" and nums[i - 1] != "0" or nums[i - 2] == "2" and  '0'< nums[i - 1] < "7":#可以两个字数字一起翻译的情况
                dp[i] = dp[i - 1] + dp[i - 2]
            else:#其余只能翻译单个数字的情况
                dp[i] = dp[i - 1]
        return dp[-1]

全部评论

相关推荐

哎呦额滴天:怎么可以差到这种程度?
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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