leetcode--Decode Ways
2015-06-10 15:46
344 查看
A message containing letters from
Given an encoded message containing digits, determine the total number of ways to decode it.
For example,
Given encoded message
The number of ways decoding
public int numDecodings(String s) {
int len = s.length();
if(len == 0) return 0;
int[] flag = new int[len+1];
flag[len] = 1;
if(s.charAt(len-1)!='0'){
flag[len-1] = 1;
}else{
flag[len-1] = 0;
}
for(int i=len-2;i>=0;i--){
if(s.charAt(i)=='0') flag[i]=0;
else{
if(s.charAt(i)>'2'||(s.charAt(i)=='2'&&s.charAt(i+1)>'6')){
flag[i] = flag[i+1];
}else{
flag[i] = flag[i+1]+flag[i+2];
}
}
}
return flag[0];
}
}
A-Zis 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.public class Solution {
public int numDecodings(String s) {
int len = s.length();
if(len == 0) return 0;
int[] flag = new int[len+1];
flag[len] = 1;
if(s.charAt(len-1)!='0'){
flag[len-1] = 1;
}else{
flag[len-1] = 0;
}
for(int i=len-2;i>=0;i--){
if(s.charAt(i)=='0') flag[i]=0;
else{
if(s.charAt(i)>'2'||(s.charAt(i)=='2'&&s.charAt(i+1)>'6')){
flag[i] = flag[i+1];
}else{
flag[i] = flag[i+1]+flag[i+2];
}
}
}
return flag[0];
}
}
相关文章推荐
- UIViewController全部API的学习。
- 给一个数组,求他的子串,使该子串的和最大
- Hibernate 的应用(Hibernate 的结构)?
- java正则表达式 match、find匹配位置
- Oracle例外定义
- Android利用ContentResolver查询的三种方式
- 栈(三):链式栈
- Windows下System Volume Information文件夹是干嘛用的?
- Python进阶(上)
- 关于 hibernate三个小问题
- 数据采集卡来说明
- MISCONF Redis is configured to save RDB snapshots,but is currently not able to persist on disk
- Linux文件查找find命令使用方法
- ShowCursor、MouseHover、MouseLeave使用与MFC框架理解
- event-based framework 分析
- mysql事务的理解
- ExtJS(6)- 用Sencha Cmd构建打包Ext项目
- php使用Jpgraph绘制柱形图的方法
- ServletContext 和ServletContextListener
- Android.mk文件解析