LeetCode Decode Ways(动态规划)
题意:编码方式为a->1,...z->26,给出编码后的数字字符串,问有多种编码方式
思路:用dp(i)表示从第1个字符到第i个字符时的编码方式,因为编码一个字符时,只能是0-9,编码两个字符时,只能为10-26
所以有dp(i) = dp(i-1) + dp(i-2) ,其中如果第i-1个字符不是0-9之间的数,则dp(i-1)=0,如果i-2到i之间的字符不是10-26,则dp(i-2)=0
代码如下:
public class Solution
{public int numDecodings(String s){if (s.length() == 0) return 0;int[] dp = new int[s.length() + 1];dp[0] = 1;for (int i = 1; i <= s.length(); i++) {if (i - 1 >= 0) {int num = Integer.parseInt(s.substring(i - 1, i));if (num >= 1 && num <= 9) dp[i] += dp[i - 1];}if (i - 2 >= 0) {int num = Integer.parseInt(s.substring(i - 2, i));if (num >= 10 && num <= 26) dp[i] += dp[i - 2];}}return dp[s.length()];}
}
LeetCode Decode Ways(动态规划)相关推荐
- [LeetCode] Decode Ways
(Version 0.0) Decode Ways这道题从原理上说是一个比较简单的一维DP题目,用一个一维数组的元素dp[i] (i >= 1)来记录从头开始长度为i的substring有多少种 ...
- [leetcode]Decode Ways
动态规划.要注意way+=dp[i-1]或dp[i-2]以及way+=1的条件.我看有的人把数组命名为count的. public class Solution {public int numDeco ...
- LeetCode Decode Ways
有点意思的题目.用动态规划能够O(n)求解出来:a[i]代表子字符串string(0,i)的可能解码方式,a[i] = {a[i-1] or a[i-1]+a[i-2]}. 意思是假设string(i ...
- 【重点!DP】LeetCode 639. Decode Ways II
LeetCode 639. Decode Ways II 参考网址:https://zxi.mytechroad.com/blog/dynamic-programming/leetcode-639-d ...
- Decode Ways leetcode java
题目: A message containing letters from A-Z is being encoded to numbers using the following mapping: ' ...
- 【DFS + 记忆化递归 + DP】LeetCode 91. Decode Ways
LeetCode 91. Decode Ways Solution1:我的答案 还是记录一下,最容易想到的是DFS,但是在第223/238个case上就超时了... class Solution { ...
- [LeetCode]91.Decode Ways
题目 A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A ...
- 【LeetCode】91. Decode Ways 解题报告(Python)
[LeetCode]91. Decode Ways 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fux ...
- [LeetCode-Algorithms-91] Decode Ways (2017.10.19-WEEK7)
题目链接:Decode Ways 题目描述:A message containing letters from A-Z is being encoded to numbers using the fo ...
最新文章
- bash脚本【一】——批量处理文件
- 多个Google账户合并(共享)数据
- java客户端服务器代码_Java Socket通信 客户端服务器端基本代码
- boost::test模块测试可变参数样本元素支持和数据集定义的移动语义
- CodeForces - 1517D Explorer Space(dp)
- DIY人脸跟踪电风扇送女朋友(4)
- 安装好机器学习环境的虚拟机_虚拟环境之外的数据科学是弄乱机器的好方法
- Requests库的主要方法:requests.request为requests.get和requests.post两个的汇总,只是需要传方法...
- nodejs和Vue和Idea
- python浮点型数据怎么显示为图片_python数字图像处理(4):图像数据类型及颜色空间转换...
- C / C++ 之整体知识总结,点进来,不后悔!
- 7的整除特征 三位一截_「每周一课」数字和除号握手言和,来攻克整除问题
- MySQL数据库优化的几种方式
- 第七篇,LQR、MPC工程化总结
- 考研408院校合集以及学科评估
- 如何制作简单的日历html5,js+html制作简单日历的方法
- linux网页打开慢的解决方法,解决Ubuntu浏览网页速度慢的问题
- Vue中如何关闭语法检查
- kubectl logs和docker logs输出日志不同的问题
- 关于Axure的基本框架