Decode Ways
来源:互联网 发布:社交软件下载 编辑:程序博客网 时间:2024/06/08 09:45
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.
典型的动态管理题目 但是这里需要考虑的特殊情况1 第i位为0 第i-1位也为0 2.第i位为0 第i-1位大于2 根据情况来确定动态转移方程 代码如下:
public class Solution { public int numDecodings(String s) { if (s.length() == 0)return 0;int[] res = new int[s.length()];if (s.charAt(0) <= '0' || s.charAt(0) > '9') {return 0;} else {res[0] = 1;}if (s.length() == 1)return res[0];if (s.charAt(0) < '2') {if (s.charAt(1) == '0') {res[1] = 1;} else {if (s.charAt(1) < '0') {return 0;} else {res[1] = 2;}}} else {if (s.charAt(0) == '2') {if (s.charAt(1) <= '6')if(s.charAt(1)=='0'){ res[1]=1; }else{res[1] = 2;}else {res[1] = 1;}} else {if (s.charAt(1) == '0')return 0;else {res[1] = 1;}}}for (int i = 2; i < s.length(); i++) {if (s.charAt(i - 1) < '2') {if (s.charAt(i - 1) == '0') {if (s.charAt(i) == '0') {return 0;} else {res[i] = res[i - 2];}} else {if (s.charAt(i) < '0') {return 0;} else {if (s.charAt(i) == '0') {res[i] = res[i - 2];} else {res[i] = res[i - 2] + res[i - 1];}}}} else {if (s.charAt(i - 1) == '2') {if (s.charAt(i) <= '6') {if (s.charAt(i) == '0') {res[i] = res[i - 2];} else {res[i] = res[i - 2] + res[i - 1];}} else {res[i] = res[i - 1];}} else {if (s.charAt(i) == '0')return 0;elseres[i] = res[i - 1];}}}return res[s.length() - 1]; }}
0 0
- 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
- Decode Ways
- Decode Ways
- Message, MessageQueue, Handler, Looper内部构造
- 剑指offer 面试题24 判断二叉搜索树后续遍历序列
- 个人未来规划
- 标准C基础知识笔记二
- Shell 游戏:贪吃蛇
- Decode Ways
- Java IO流
- 应用多线程的一个有趣的现象
- 4 [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] https request error:{}解决方法
- SYN 攻击原理以及防范技术
- POCO::ZIP 压缩与解压缩文件夹
- 18小时内掌握Spark:把云计算大数据速度提高100倍以上!(Final版本)
- DisplayImageOptions中的cacheOnDisc 过时
- python编程规范