LeetCode--Decode Ways(解码方式)Python
来源:互联网 发布:如何上淘宝一千零一夜 编辑:程序博客网 时间:2024/06/10 19:49
题目:
一个含有字母A-Z的信息通过使用下面的映射进行编码:
'A' -> 1
'B' -> 2
...
'Z' -> 26
比如,给出字符‘12’,则其可能的编码是‘AB’(1和2)或者‘L’(12).
题目给出一个编码后的数字字符串,求可能的编码方式有多少种
解题思路:
考虑使用动态规划或者递归来解决问题。因为判断“567123”的编码方式可以转为判断“56712”+‘3“或者”5671“+”23“的问题。即f(n)=f(n-1)+f(n-2)。
需要特别注意的是:数字”0“对应的编码只能是和其前一个数字组合对应的编码,如果和其前一个字符组合后不存在对应编码,则编码方式为0.
代码(python):
class Solution(object): def numDecodings(self, s): """ :type s: str :rtype: int """ dp = [1,1] temp = 0 if s=='': return 0 if s[0]=='0': return 0 for i in range(len(s)-1): temp = i+1 if s[temp]=='0': if s[temp-1]=='0' or s[temp-1]>='3': return 0 if s[temp-1]!='0' and s[temp-1:temp+1]<='26': dp.append(dp[temp-1]) continue if s[temp]!='0': if s[temp-1]=='0': dp.append(dp[temp]) continue if s[temp-1:temp+1]<='26': dp.append(dp[temp]+dp[temp-1]) continue else: dp.append(dp[temp]) continue return dp[temp+1]
阅读全文
0 0
- LeetCode--Decode Ways(解码方式)Python
- 【Leetcode】Decode Ways 解码方式
- LeetCode OJ 之 Decode Ways (解码方式)
- leetCode 91.Decode Ways (解码方式) 解题思路和方法
- [Leetcode] Decode Ways - python
- [Leetcode][python]Decode Ways
- 91. Decode Ways(解码方式)
- Decode Ways(如何解码) 【leetcode】
- LeetCode 91. Decode Ways(解码方法)
- LeetCode 91. Decode Ways(解码方法)
- 【LeetCode with Python】 Decode Ways
- [Leetcode]91. Decode Ways@python
- LeetCode | Decode Ways(译码方式)
- leetcode 日经贴,python code -Decode Ways
- [LeetCode]--91. Decode Ways(Python + Java)
- Decode Ways 把字符串解码成数字组合@LeetCode
- 解码方法数 Decode Ways
- lintcode decode-ways 解码方法
- Mysql外键级联动作(删除和更新)
- 作业
- 定义一个图形类及其子类(三角形类和矩形类),分别计算其面积和周长
- angularjs的音乐循环播放
- 汇编(五)
- LeetCode--Decode Ways(解码方式)Python
- SqlServer从备份中还原
- 应届生经典面试题:说说进程与线程的区别与联系
- web项目优化日志打印方法
- Spring data kafka操作kafka消息的发送和订阅
- Spark学习笔记——数据读取和保存
- Struts2.5.12+hibernate4.3.11+spring4.3.9整合
- Struts2笔记之自定义封装请求参数的数据类型转换器
- js和jquery在操作dom节点时各自的方法