lintcode(512)解码方法
来源:互联网 发布:mac office激活账号 编辑:程序博客网 时间:2024/05/16 15:40
描述:
有一个消息包含A-Z
通过以下规则编码
'A' -> 1'B' -> 2...'Z' -> 26
现在给你一个加密过后的消息,问有几种解码的方式
样例:
给你的消息为12
,有两种方式解码 AB(12) 或者 L(12). 所以返回 2
思路:
动态规划,相邻两位一起看00 不符合条件, 01 - 09 只有一种 ,10,20只有一种,超过27不符合条件,其余可以有两种方案
public class Solution { /** * @param s a string, encoded message * @return an integer, the number of ways decoding */ public int numDecodings(String s) { // Write your code here if(s == null || s.length() == 0 || s.charAt(0) == '0'){ return 0; } int count1 = 1 , count2 = 1 , count3 = 1; for(int i = 1;i<s.length();i++){ if(s.charAt(i) == '0'){ int a = s.charAt(i - 1) - '0'; if(a == 1 || a == 2){ count3 = count1; }else{ return 0; } }else{ int a = s.charAt(i - 1) - '0'; int b = s.charAt(i) - '0'; int c = 10*a + b; if(c >= 27 || c < 10){ count3 = count2; }else{ count3 = count1 + count2; } } count1 = count2; count2 = count3; } return count3; }}
0 0
- lintcode(512)解码方法
- lintcode, 解码方法
- LintCode: 解码方法
- 解码方法-LintCode
- lintcode----解码方法
- lintcode decode-ways 解码方法
- LINTCODE——解码方法
- LintCode习题系列之解码方法
- 乱码的解码方法
- Base64 另一种解码方法
- 哈夫曼解码 -- huffmanDecoder方法
- base64编码解码方法
- FFmpeg 视频格式解码方法
- php base64_decode 解码方法
- base64编解码方法
- 图片解码方法
- 编码解码的方法
- 91字母解码方法
- Java 面试准备系列1-构造函数,静态方法的执行顺序
- Jxl 中Cell获取到的excel数据保留精度问题
- oracle pl/sql定时器时间
- 排序算法09:排序算法总结
- javaweb快速上手(二 登陆功能)
- lintcode(512)解码方法
- SuperMap iObjects Java tar 包使用指南
- Android 技术重温系列 ( 6 )
- /dev/tty,/dev/console,/dev/vc/0的初始化
- 删除问题
- 源码解读Spring IOC原理
- css垂直居中
- PHP编译不成功
- linux-011之time.h头文件