Skip to content

Latest commit

 

History

History
31 lines (29 loc) · 1000 Bytes

66. 把数字翻译成字符串.md

File metadata and controls

31 lines (29 loc) · 1000 Bytes

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

输入: 12258 
输出: 5 
解释: 12258有5种不同的翻译,分别是"bccfi", "bwfi", "bczi", "mcfi"和"mzi"
class Solution:
    def translateNum(self, num: int) -> int:
        res = []
        ind = 0
        cur = []
        num = str(num)
        n = len(nums)
        #构造递归
        def dfs(ind, cur):
            #终止条件
            if ind == n:
                res.append(cur)
                return
            #情况1
            dfs(ind+1, cur+[num[ind]])
            #情况2
            if 10<= int(num[ind:ind+2]) <=25:
                dfs(ind+2, cur+[num[ind:ind+2]])
        #调用递归
        dfs(ind, cur)
        return len(res)