'''
把数字翻译成字符串

给定一个数字，我们按照如下规则把它翻译为字符串：0 翻译成 “a” ，1 翻译成 “b”，……，11 翻译成 “l”，……，25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数，用来计算一个数字有多少种不同的翻译方法。

来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/ba-shu-zi-fan-yi-cheng-zi-fu-chuan-lcof
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
'''
def translateNum(num: int) -> int:
    str_num = str(num)
    dp = [0]*(len(str_num)+1)
    dp[0] = dp[1] = 1
    for i in range(2,len(str_num)+1):
        if "10" <= str_num[i - 2:i] <= "25":
            dp[i] = dp[i-2]+dp[i-1]
        else:
            dp[i] = dp[i-1]
    return dp[len(str_num)]
print(translateNum(12538)) #3