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

把数字翻译成字符串

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)
全部评论

相关推荐

10-21 00:37
已编辑
门头沟学院 C++
小浪_Coding:你问别人,本来就是有求于人,别人肯定没有义务免费回答你丫, 有点流量每天私信可能都十几,几十条的,大家都有工作和自己的事情, 付费也是正常的, 就像你请别人搭把手, 总得给人家买瓶水喝吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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