剑指Offer【把数字翻译成字符串】
题目描述
给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。
示例 1:
1 | |
提示:
0 <= num < 2^31
解法
动态规划
dp[i]表示为从0-i能翻译的种类数- 可以
i单独作为一位来翻译,此时最后一位肯定是固定的只有一种,那么种类数在dp[i-1]就确定了 - 如果第
i−1位和第i位组成的数字在10到25之间,可以把这两位连起来翻译,同类种类数在dp[i-2]就固定了 - 动态转移方程为:

1 | |
- 时间复杂度:O(n)
来源:力扣(LeetCode)
链接:剑指 Offer 46. 把数字翻译成字符串 - 力扣(LeetCode)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 漫漫长夜!





