LeetCode刷题-91. 解码方法
题目链接:91. 解码方法
¶题解:
简单的动态规划题!
¶题目简述:
将A ~ Z编码为 1 ~ 26,给定一个数字字符串求共有多少种解码方式!
¶题解:
动态规划:
状态表示: f[i]表示前i个字符的解码方法数
**状态计算:**考虑最后一步
- 最后一位不为
0时,解码数为f[i - 1] - 最后两位为
10 ~ 26时,解码数为f[i - 2]
综上所述,状态转移方程为: f[i] = f[i - 1] + f[i - 2]
最终结果: f[n]
初始转态: f[0] = 1 ,初始转态为0还是1由是否能满足所有状态的正确性决定,由于f[1] = s[1] != '0' ? 1: 0;,所以f[0] = 1!
时间复杂度:O(n)
注意:
- 为了使得处理边界简单,将字符串前面加空格处理!
¶AC代码:
1 | |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小牛博客!
评论




