LeetCode----Decode Ways
来源:互联网 发布:知乎 最霸气的一句话 编辑:程序博客网 时间:2024/06/17 12:03
Decode Ways
A message containing letters from A-Z
is being encoded to numbers using the following mapping:
'A' -> 1'B' -> 2...'Z' -> 26
Given an encoded message containing digits, determine the total number of ways to decode it.
For example,
Given encoded message "12"
, it could be decoded as "AB"
(1 2) or "L"
(12).
The number of ways decoding "12"
is 2.
分析:
动态规划题,注意,输入会有很多不合法的情况,比如‘100’之类的,这种情况下decoding方式为0。
不合法的情况有:串长度为0;串以0开头;串中出现00;串中出现30,40,50等串。
代码:
class Solution(object): def numDecodings(self, s): """ :type s: str :rtype: int """ f = {-1: 1} s_len = len(s) if s_len == 0 or s[0] == '0': return 0 f[0] = 1 i = 1 while i < s_len: if s[i] == '0' and (s[i - 1] > '2' or s[i - 1] == '0'): return 0 if s[i] == '0': f[i] = f[i - 2] elif 10 <= int(s[i-1:i+1]) <= 26: f[i] = f[i - 1] + f[i - 2] else: f[i] = f[i - 1] i += 1 return f[s_len - 1]
0 0
- Leetcode 91. Decode Ways&&639.Decode ways
- LeetCode: Decode Ways
- [LeetCode]Decode Ways
- LeetCode Decode Ways
- LeetCode : Decode Ways
- [Leetcode] Decode Ways *
- [leetcode] Decode Ways (!!)
- leetcode 17: Decode Ways
- Leetcode: Decode ways
- LeetCode Decode Ways
- [LeetCode]Decode Ways
- [leetcode] Decode Ways
- Leetcode: Decode Ways
- [LeetCode] Decode Ways
- [leetcode]Decode Ways
- LeetCode-Decode Ways
- [leetcode] Decode Ways
- [LeetCode] Decode Ways
- POJ 1050 To the Max(简单DP)
- Cocos2d-x 游戏开发 - 代码与CocosBuilder绑定
- RecyclerView中的ViewType
- Servlet中的过滤器Filter详解
- switch语句作用域
- LeetCode----Decode Ways
- 内部类和匿名内部类
- 动态消息转发机制实例
- [C#]LINQ小例子
- eclipse配置文件的导出
- NGUI实现输入框和进度条
- java字符串中提取相应位置的字符及大小写转换
- cron表达式详解
- CCF-门禁系统entrance guard