leetcode 91. 解码方法
2024-08-23 01:36:28
题目描述:
一条包含字母 A-Z
的消息通过以下方式进行了编码:
'A' -> 1
'B' -> 2
...
'Z' -> 26
给定一个只包含数字的非空字符串,请计算解码方法的总数。
示例 1:
输入: "12"
输出: 2
解释: 它可以解码为 "AB"(1 2)或者 "L"(12)。
示例 2:
输入: "226"
输出: 3
解释: 它可以解码为 "BZ" (2 26), "VF" (22 6), 或者 "BBF" (2 2 6) 。 思路:对于第i个字符,只要s[i]!='0'(1-9有编码),解码方法并不会增加,和s[i-1]的解码方法个数一样,
然后看s[i-1]是否是'1'、'2'(1或者2可以和下一位组成新编码),因s[i+1]和s[i]组成了新的编码,
所以此时s[i]的编码总数需要再加上s[i-2]的编码个数。
注意:除了第一位不能为'0',之后的都可以,'10'也属于编码。
class Solution {
public:
int numDecodings(string s) {
if(s.size() == || s[] == '')
return ;
vector<int> a(s.size());
int i;
a[]=;
for(i =;i<s.size();i++)
{
if(s[i] != '')
{
a[i] = a[i-];
}
if(s[i-]=='' || s[i-]=='' && s[i]>='' && s[i]<='')
{
if(i==)
{
a[i] = a[i]+a[i-];
}else
{
a[i] = a[i]+a[i-];
}
} }
return a[i-];
}
};
题目链接:https://leetcode-cn.com/problems/decode-ways/
最新文章
- [转载]SQL Server 2008 R2安装时选择的是windows身份验证,未选择混合身份验证的解决办法
- Hibernate 基础配置及常用功能(二)
- TinyPNG---一个压缩PNG的神站
- OC小实例关于init方法不小心的错误
- android 拦截事件
- 图的邻接表存储表示(C)
- 【转】STL中mem_fun和mem_fun_ref的用法及区别
- eclipse.ini配置eclipse的启动参数
- 枚举在c与c++中定义的不同
- 【转】eclipse -- the project was not built due to a resource exists with a different case...
- 初识XMLHttpRequeset
- Linux Centos安装及卸载Apache
- nagios与zabbix对比
- Ceres配置(vs2013+Win10)
- [Java]直播方案----[接入环信聊天室]+[腾讯云直播]
- HDFS基本架构及概念介绍
- 第四周学习总结-HTML
- 简单数论总结1——gcd与lcm
- IE8下submit表单没反应
- (转)关于ES6的 模块功能 Module 中export import的用法和注意之处