91.解码方法
时间:2019-10-08
本文章向大家介绍91.解码方法,主要包括91.解码方法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题目:
https://leetcode-cn.com/problems/decode-ways/
解码方法
-
例子:“121013271”
-
状态方程
(1) 如果S[i] == 0
① 如果(S[i-1] ==1 || S[i-1] ==2),dp[i]=dp[i-2]
“110”->”1,2,1”
② 否则返回0
(2) 如果(S[i-1]==2) &&(s[i] <=6),则dp[i]=dp[i-1]+dp[i-2]
(3) 如果S[i-1] == 1无论S[i]是多少,dp[i]=dp[i-1]+dp[i-2]
3. 边界
(1) Dp[0]=1,dp[-1]=1
4. 程序
public static int numDecodings(String s) { if(s.length() == 0 || s == null || s.charAt(0)=='0'){ return 0; } char[] arr = s.toCharArray(); int[] arrInt = new int[arr.length]; for(int i = 0 ; i < arr.length ; i ++){ arrInt[i] = arr[i] - '1' + 1; } int num1 = 1,num2 = 1; int tmp = 1; for(int i = 1 ;i < arrInt.length ; i ++){ tmp = num2; if(arrInt[i] == 0){ if( arrInt[i-1] != 1 && arrInt[i-1]!=2) return 0; else{ tmp = num1; } }else{ if(arrInt[i-1]==1){ tmp = num1 + num2; } if(arrInt[i-1]==2 && arrInt[i] <= 6){ tmp = num1 + num2; } } num1=num2; num2 = tmp; } return tmp; }
原文地址:https://www.cnblogs.com/da-peng/p/11635691.html
- TFS2010 Team Project Collections
- 基于Ext.Panel扩展一个更容易操作的Canvas
- 好玩的效果很好的Html游戏和范例
- jQuery仿极客公园火箭发射“返回顶部”效果(优化篇)
- 北京市首个无人驾驶试运营基地落户顺义
- 后rtx集成时代
- 后短信集成时代
- jQuery仿极客公园火箭发射“返回顶部”效果(WordPress代码篇)
- Windows 2008 R2 Server Core .NET环境配置
- Request——Node世界中被依赖最多的库No.2
- 在传统.NET Framework 上运行ASP.NET Core项目
- .net core快速上手
- logicaldoc的外部认证——AD集成
- CLR 4.0 安全模型
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 一起来学matlab-matlab学习笔记6 性能剖析
- 一起来学matlab-matlab学习笔记5 低级文件输入输出函数
- 一起来学matlab-matlab学习笔记4 数据导入和导出_3 导入和导出电子数据表
- 数据导入和导出_1 MAT文件的保存和读取
- 论文研读-基于决策变量分析的大规模多目标进化算法
- 用python画 pareto front
- 一起来学演化计算-matlab基本数据结构struct
- 一起来学演化计算-matlab基本函数inf, isempty, round, floor, fix
- 一起来学演化计算-matlab基本函数randperm end数组索引
- 论文研读-基于决策变量聚类的大规模多目标优化进化算法
- 一起来学演化计算-matlab基本函数min
- 一起来学演化计算-matlab基本函数find
- 欧拉图和哈密顿图
- python 操作 txt 文件中数据教程[4]-python 去掉 txt 文件行尾换行
- java字符数组char[]和字符串String之间的转换