当前位置:网站首页>leetcode:639. 解码方法 II
leetcode:639. 解码方法 II
2022-08-02 08:49:00 【OceanStar的学习笔记】
题目来源
题目描述



class Solution {
public:
int numDecodings(string s) {
}
};
题目解析
class Solution {
int process(string str, int i){
if(i == str.size()){
return 1;
}
if(str[i] == '0'){
return 0;
}
// str[index]有字符且不是'0'
if(str[i] != '*'){
// str[index] = 1~9
int p1 = process(str, i + 1);
if(i + 1 == str.size()){
return p1;
}
if(str[i + 1] != '*'){
int num = (str[i] - '0') * 10 + str[i + 1] - '0';
int p2 = 0;
if(num < 27){
p2 = process(str, i + 2);
}
return p1 + p2;
}
// str[i+1] == '*'
// i i+1 -> 一起转 1* 2* 3* ...9*
int p2 = 0;
if(str[i] < '3'){
p2 = process(str, i + 2) * (str[i] == '1' ? 9 : 6);
}
return p1 + p2;
}
// str[i] == '*' 1~9
int p1 = 9 * process(str, i + 1); // i 单转 9种
if(i + 1 == str.size()){
return p1;
}
if(str[i + 1] != '*'){
// * 0 10 20
// * 1 11 21
// * 2 12 22
// * 3 13 23
// * 6 16 26
// * 7 17
// * 8 18
// * 9 19
int p2 = (str[i + 1] < '7' ? 2 : 1) * process(str, i + 2);
return p1 + p2;
}else{
// **
// 11~19 9
// 21 ~26 6
// 15
int p2 = 15 * process(str, i + 2);
return p1 + p2;
}
}
public:
int numDecodings(string s) {
return process(s, 0);
}
};
边栏推荐
- 谈谈对Volatile的理解
- Redisson报异常attempt to unlock lock, not locked by current thread by node id解决方案
- XML简介
- Analysis of software testing technology How far is Turing test from us
- 那些年我们踩过的 Flink 坑系列
- UVM之sequence机制
- JSP页面中page指令有哪些属性及方法可使用呢?
- Installation and use of pnpm
- Codeforces Round #811 (Div. 3)无DF
- redis-desktop-manager下载安装
猜你喜欢

LeetCode第三题(Longest Substring Without Repeating Characters)三部曲之一:解题思路

被报表需求逼疯的银行数据人,是时候放弃用Excel做报表了

(Note) AXIS ACASIS DT-3608 Dual-bay Hard Disk Array Box RAID Setting

C语言基础_共用体

Jenkins--基础--07--Blue Ocean

你有了解过这些架构设计,架构知识体系吗?(架构书籍推荐)

Jenkins--基础--5.4--系统配置--全局工具配置

PyCharm usage tutorial (more detailed, picture + text)

破解wifi密码 暴力破解 保姆式教学

大厂外包,值得拥有吗?
随机推荐
PyQt5安装配置(PyCharm) 亲测可用
Flink 系统性学习笔记系列
USACO美国信息学奥赛竞赛12月份开赛,中国学生备赛指南
Openwrt_树莓派B+_Wifi中继
Analysis of software testing technology How far is Turing test from us
postman使用方法
ip地址那点事(二)
day_05 time 模块
十大免费cms建站系统介绍推荐
【微信小程序2】事件绑定
MySQL Workbench 安装及使用
利用minlm比较句子之间的相似度
Technology Cloud Report: To realize the metaverse, NVIDIA starts from building an infrastructure platform
ABAP 和json转换的方法
day_05_pickel 和 json
Jenkins--部署--3.1--代码提交自动触发jenkins--方式1
智能网络安全网卡|这是不是你要的安全感
MySQL读写分离与主从延迟
你有了解过这些架构设计,架构知识体系吗?(架构书籍推荐)
Docker内MySQL主从复制学习,以及遇到的一些问题