
字符串解码--动态规划
发布日期:2021-05-07 02:59:52
浏览次数:16
分类:精选文章
本文共 1087 字,大约阅读时间需要 3 分钟。
class Solution { public int numDecodings(String s) { /* 动态规划: 我们解密字符串的方式 前i个指的是 0 到 i-1 设总共有i个字符 s的前i个字符的解密方式有:最后一个字符为下表i-1 1.最后一个字符进行解密方式 + 前i-1个字符进行解密的和(0到 i-2) 前提下标i-1的字符可以正常解密 2.最后两个字符进行解密 + 前i-2个字符进行解密的和(0到i-3) 前提下标i-1 和下表 i-2 拼起来的字符可以正常解密 因为这种计算的时候第 i-1 或者 第i-2 个的字符已经确定了解密方式 所以我们前i个字符的解密方式 = 前i-1个字符串的解密方式 + 前i-2个字符串的解密方式 的 和 序列型 我们考虑前多少。。。 初始条件 f[0] = 1; 含义是 空串只有一种解密方式 就是空 */ char[] chars = s.toCharArray(); int n = chars.length; if(n ==0 ) return 0 ; int f[] = new int[n+1]; f[0] = 1; for(int i = 1 ; i <= n ; i++){ f[i] = 0 ; int temp = chars[i-1] - '0' ; if(temp >0 && temp <= 9){ //看最后一个字符能否凑成一个解密 f[i]+=f[i-1]; } if(i>=2){ //看最后两个字符能够凑成一个解密 temp = (chars[i-2]-'0')*10 + chars[i-1] - '0' ; } if(temp >=10 && temp <=26){ f[i]+=f[i-2]; } } return f[n]; }}
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年03月22日 11时19分09秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
weblogic之cve-2015-4852
2019-03-05
Java注释
2019-03-05
水调歌头·1024
2019-03-05
对不起
2019-03-05
C++ 函数默认参数
2019-03-05
C++ 函数重载
2019-03-05
C++ sort()函数使用简介
2019-03-05
Kickdown UVA - 1588
2019-03-05
matlab文件管理
2019-03-05
Printer Queue UVA - 12100
2019-03-05
【并发编程】实现多线程的几种方式
2019-03-05
设计模式系列博客传送门
2019-03-05
设计模式——访问者模式
2019-03-05
同步锁 —— ReentrantReadWriteLock
2019-03-05
Nginx简介
2019-03-05
Nginx的Gzip功能
2019-03-05
当我们开发一个接口时需要注意些什么
2019-03-05
chrome 截长图功能
2019-03-05
springMVC:异步调用,异步请求跨域访问,拦截器,异常处理,实用技术
2019-03-05