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

把数字翻译成字符串

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

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 解码
# @param nums string字符串 数字串
# @return int整型
#
class Solution:
    def solve(self , nums: str) -> int:
        # 清除0
        if nums == '0':
            return 0
        # 清除10 和 20
        if nums == '10' or nums == '20':
            return 1
        n = len(nums)
        my_list1 = [str(i) for i in range(11,20)]
        my_list2 = [str(i) for i in range(21,27)]
        my_list1.extend(my_list2)
        print(my_list1)
        # 判断极端情况 100 200 3000
        for i in range(1, n):
            if nums[i] == '0':
			    # 一定是and
                if nums[i-1]!='1' and nums[i-1] != '2':
                    return 0
        dp = [1 for j in range(n)]
        if nums[0:2] in my_list1:
            dp[1]=2
        print(dp)
        for i in range(2,n):
            if nums[i-1:i+1] in my_list1:
                dp[i] = dp[i-1] + dp[i-2]
            else:
                dp[i] = dp[i-1]
        print(dp)
        return dp[-1]

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务