Decode Ways --lintcode
来源:互联网 发布:怪物猎人ol mac 编辑:程序博客网 时间:2024/06/10 20:29
,Description
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.
Example
Given encoded message 12, it could be decoded as AB (1 2) or L (12).
The number of ways decoding 12 is 2.
我的思路:这个有点像爬楼梯。要么’走一步’ 要么’走两步’. 即temp[i]=temp[i-1]+temp[i-2];
但是这个比爬楼梯多了一些限制条件。
1.s[i-1]不能为0,如果s[i-1]是0的话,number[i]就只能等于number[i-2]
2.s[i-2,i-1]中的第一个字符不能是0,而且Integer.parseInt(s.substring(i-2,i))形成的数字不能大于26.
public int numDecodings(String s) { if(s==null || s.length()==0) { return 0; } if(s.charAt(0)=='0') { return 0; } int [] temp = new int[s.length() + 1]; temp[0] = 1; temp[1] = 1; int tmp; for(int i=2;i<=s.length();i++){ //检查当前字符是不是'0' if(Integer.parseInt(s.substring(i-1,i))!=0) temp[i]=temp[i-1]; //检查当前字符和前一个字符组合在一起是否在1-26之间 if(s.charAt(i-2)!='0'){ tmp = Integer.parseInt(s.substring(i-2,i)); if(tmp>0&&tmp<=26) { temp[i] += temp[i-2]; } } } return temp[s.length()];}
阅读全文
0 0
- *[Lintcode] Decode Ways
- Decode Ways --lintcode
- lintcode decode-ways 解码方法
- Decode Ways
- Decode Ways
- Decode Ways
- Decode Ways
- Decode Ways
- Decode Ways
- Decode Ways
- Decode Ways
- Decode Ways
- Decode Ways
- Decode Ways
- Decode Ways
- Decode Ways
- Decode ways
- Decode Ways
- zkServer.sh 分析
- HashMap源码--(二)构造器
- 学习笔记:ES6之Generator
- Redis lesson13 Redis的事务机制
- Jenkins部署Web项目到远程tomcat(四)
- Decode Ways --lintcode
- 3、Selenium + Python 实现 UI 自动化测试-元素定位
- android 绘图之双缓冲绘图
- 2017腾讯WE大会门票—早鸟票
- Python中的__name__属性
- 记LWIP调试http server的Out of memory问题
- Activity布局加载流程源码解析
- SOFTHEAD 故事
- LeetCode58. Length of Last Word