Decode Ways:from LeetCode
来源:互联网 发布:java十大低级错误 编辑:程序博客网 时间:2024/05/21 11:22
题目大意:A-Z分别编码为1-26,给你一个数字串,问这个数字串有多少种解码方法?
如 12有两种1,2和12分别是AB 和 L
0开头的认为是非法的,因为无法解码,同样 1001也无法解码
这些特殊情况可以在代码中特殊处理,此题可以用简单的DP解决
比如串 s=121212;a[i]来表示第i个字节时能有多少解码方式
a[1]=1;a[2]=2;a[3]=a[1]+a[2];a[i]=a[i-2]+a[i-1]当且仅当s[i-1]s[i]组成的数字能解码且s[i]也能解码。其他情况同理分析,代码写的很直白
下面是AC代码
class Solution {public: int numDecodings(string s) { int a[10000]; int len=s.length(),num; if(s[0]>'0' && s[0]<='9') a[0]=a[1]=1; else return 0; for(int i=2;i<=len;i++) { num=(s[i-2]-'0')*10+(s[i-1]-'0'); if(num==0)return 0; if(num>26 && s[i-1]=='0')return 0; a[i]=a[i-1]; if(num<27 && num>10 && s[i-1]!='0') a[i]=a[i-1]+a[i-2]; if(num==10) a[i]=a[i-2]; }; return a[len]; }};
0 0
- Decode Ways:from LeetCode
- 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
- 算法设计分析中的: 骑士问题
- Windows 通信基础(Windows Communication Foundation)
- 用VMware搭建域环境时DHCP问题
- iTween研究院之学习笔记Move移动篇(一)
- SDK更新慢的解决办法
- Decode Ways:from LeetCode
- jquery 选择器
- 陈天桥投入50万回报150亿的创业故事
- 成绩处理 根据班级对成绩分类 之根据班级新建工作表
- 给大数据降降温:关于大数据的九个问题
- java组合和聚合的区别和联系
- Ubuntu apt-get install 被锁定的解决方法
- 非常全面的贝叶斯网络介绍 非常多的例子说明
- [leetcode]Longest Common Prefix