题解 | #把数字翻译成字符串# 递归写法

把数字翻译成字符串

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

欢迎star: imhuay/studies

贡献一种优雅的递归写法,当然本质上还是动态规划

class Solution:
    def solve(self , nums: str) -> int:
        
        n = len(nums)
        
        from functools import lru_cache
        
        @lru_cache(maxsize=None)
        def dfs(i):
            if i == n: return 1
            if nums[i] == '0': return 0
            r1 = dfs(i + 1)
            r2 = dfs(i + 2) if i < n - 1 and nums[i] == '1' else 0
            r3 = dfs(i + 2) if i < n - 1 and nums[i] == '2' and '0' <= nums[i + 1] <= '6' else 0
            return r1 + r2 + r3
        
        return dfs(0)
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务