给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。
示例 1:
输入: 12258 输出: 5 解释: 12258有5种不同的翻译,分别是"bccfi", "bwfi", "bczi", "mcfi"和"mzi"
思路分析:
示例代码:
def translateNum(num):
s = str(num)
n = len(s)
a, b = 1, 1
for i in range(n - 1):
tmp = s[i: i + 2]
# c = a + b if '10' int:
s = str(num)
n = len(s)
dp = [1 for _ in range(n+1)]
for i in range(2, n+1):
if s[i-2] == '1' or (s[i-2] == '2' and s[i-1] < '6'):
dp[i] = dp[i-2] + dp[i-1]
else:
dp[i] = dp[i-1]
return dp[n]
思路解析: