Java for LeetCode 091 Decode Ways
2024-10-20 08:00:11
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.
解题思路:
dp问题,JAVA实现如下:
static public int numDecodings(String s) {
if (s.length() == 0 || s.charAt(0) == '0')
return 0;
int[] dp = new int[s.length() + 1];
dp[0] = dp[1] = 1;
for (int i = 1; i < s.length(); i++) {
if (s.charAt(i) == '0'&& (s.charAt(i - 1) != '1' && s.charAt(i - 1) != '2'))
return 0;
else if (s.charAt(i) == '0')
dp[i + 1] = dp[i - 1];
else if (s.charAt(i - 1) == '0'||(s.charAt(i-1)-'0')*10+(s.charAt(i)-'0')>26)
dp[i + 1] = dp[i];
else
dp[i + 1] = dp[i - 1] + dp[i];
}
return dp[s.length()];
}
最新文章
- Java学习笔记 03 数组
- 漫谈可视化Prefuse(四)---被玩坏的Prefuse API
- Flash 二进制传图片到后台Java服务器接收
- JS iframe元素和父页面元素互访
- 2016-6-15-de novo文献阅读
- hdu 4642 博弈
- NVIDIA显卡设置提升MineCraft流畅度
- WINDOWS自启动程序的10大隐身之所
- 银联+移动+三星PK微信、余额宝
- js中内置有对象
- 制作Windows服务项目详细攻略
- iOS-UINavigationBar【颜色设置】
- IntelliJ IDEA入门系列
- 【linux】之日志查看
- eclipse详细安装教程与环境变量设置
- c# int类型的转datetime类型
- isprime_判断质数
- 高并发情况下,如何生成分布式全局id
- CUDA ---- 线程配置
- JVM 之:Class 类文件结构