博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Decode Ways
阅读量:6686 次
发布时间:2019-06-25

本文共 656 字,大约阅读时间需要 2 分钟。

    题意是1-26对应于A-Z,这样一个数字字符串可以解码成只包含A-Z的字符串。例如,12可以解码成AB,也可以解码成L。这样12就有两种解码方式。实现numDecodings(string s)接受数字字符串,返回可以解码的方式数。

int check(char one)
{
return (one != '0') ? 1 : 0;
}
 
int check(char one, char two)
{
return (one == '1' || (one == '2' && two <= '6'))
? 1 : 0;
}
 
int numDecodings(string s)
{
vector
ways(s.size(), 0);
 
if (s.size() == 0) return 0;
if (s.size() == 1) return check(s[0]);
 
ways[0] = check(s[0]);
ways[1] = (check(s[0]) & check(s[1])) + check(s[0], s[1]);
 
for (size_t i = 2; i < s.size(); ++i)
{
if (check(s[i])) ways[i] += ways[i - 1];
if (check(s[i - 1], s[i])) ways[i] += ways[i - 2];
}
 
return ways[s.size() - 1];
}

转载地址:http://lrqao.baihongyu.com/

你可能感兴趣的文章
Uni-app实战项目注意事项
查看>>
洛谷 P1014 Cantor表【蛇皮矩阵/找规律/模拟】
查看>>
Java中的内部接口
查看>>
mysql的cmd窗口查看数据库信息
查看>>
Python之旅.第四章.模块与包
查看>>
CodeForces 876B Divisiblity of Differences (数学水题)
查看>>
HDU 6627 2017ACM/ICPC亚洲区域赛沈阳站 Rabbits
查看>>
审核功能
查看>>
搭建jsp运行环境
查看>>
Summary
查看>>
多文件上传组件FineUploader使用心得
查看>>
正则表达式
查看>>
深入设计模式(三)——适配器模式
查看>>
Java并发编程:如何创建线程?
查看>>
十五、curator recipes之DistributedQueue
查看>>
java基础---多线程---JUC线程池
查看>>
leetcode总结:permutations, permutations II, next permutation, permutation sequence
查看>>
RegexKitLite 正则表达式
查看>>
暑期第一弹<搜索> E - Find The Multiple(DFS)
查看>>
maven+spring mvc+mybatis+redis+dubbo+zookeeper
查看>>