目录

三个月算法进阶--day74

目录

记录

leetcode剑指offer第46题把数字翻译成字符串

动态规划

class Solution:
    def translateNum(self, num: int) -> int:
        a = b = 1
        y = num % 10
        while num != 0:
            num //= 10
            x = num % 10
            a, b = (a + b if 10 <= 10 * x + y <= 25 else a), a
            y = x
        return a

dfs

class Solution:
    def translateNum(self, num: int) -> int:
        def dfs(strs):
            if len(strs) <= 1:
                self.ans += 1
                return
            dfs(strs[1:])
            if strs[0] != "0" and int(strs[:2]) <= 25:
                dfs(strs[2:])
        self.ans = 0
        dfs(str(num))
        return self.ans