当前位置: 首页 > news >正文

题解:单词解密

【题目描述】

小猴发明了一套对字母的加密系统,其本质就是用字母在字典序中的编号来代替该字母,即用 \(1∼26\) 代替 \(a∼z\)

例如,单词 codec 是第 \(3\) 个字母,o 是第 \(15\) 个字母,d 是第 \(4\) 个字母,e 是第 \(5\) 个字母,因此 code 经过加密后,得到的密文为 \(31545\)

但是小猴发现,这样加密后的信息,可能会有多种解读,密文为 \(31545\) 除了 code 还可以是 caede,因此在解密时,有两种可能性。

现在,小猴给你一串密文,请你帮助小猴计算出所有可能的明文的种数对 \(10^9+7\) 取模。

【输入】

输入共一行,一串数字表示密文,保证一定有解。

【输出】

输出共一行,一个正整数表示答案。

【输入样例】

31545

【输出样例】

2

【代码详解】

#include<iostream>
#include<algorithm>
using namespace std;const int MOD = 1e9 + 7;  // 模数
string s;  // 输入的数字字符串
int n, dp[100005];  // n: 字符串长度,dp: 动态规划数组int main()
{cin >> s;  // 读入数字字符串n = s.size();  // 获取字符串长度s = ' ' + s;  // 在字符串前加一个空格,使下标从1开始dp[0] = dp[1] = 1;  // 初始化动态规划数组// dp[0] = 1: 空字符串有1种解码方式// dp[1] = 1: 第一个字符单独解码有1种方式(假设不是'0')for (int i = 2; i <= n; i++){if (s[i] == '0')  // 如果当前字符是'0'{// 如果当前字符是'0',它必须和前一个字符组合// 且前一个字符只能是'1'或'2',否则无法解码// 解码方式数等于dp[i-2]dp[i] = dp[i - 2];}else if (s[i - 1] == '1' || s[i - 1] == '2' && s[i] <= '6'){// 如果前两个字符能组成10-26(除了20),则有两种解码方式:// 1. 当前字符单独解码:dp[i-1]种方式// 2. 前两个字符一起解码:dp[i-2]种方式dp[i] = (dp[i - 1] + dp[i - 2]) % MOD;}else{// 如果前两个字符不能组成有效数字,则当前字符必须单独解码dp[i] = dp[i - 1];}// cout<<dp[i]<<' ';  // 调试输出}cout << dp[n];  // 输出整个字符串的解码方式总数return 0;
}

【运行结果】

31545
2
http://www.jsqmd.com/news/398989/

相关文章:

  • 2026新年快乐
  • 摆脱论文困扰! 8个降AI率工具测评:自考降AI率全攻略
  • 盘点台州提供宠物腹腔镜绝育的医疗机构,宠物/异宠/狗狗体检/宠物内科/24小时宠物医院,宠物绝育医院哪家靠谱 - 品牌推荐师
  • 自动化测试之魂:Selenium 与 TestNG 深度集成内核、Page Object 模型实战与 Web UI 交付质量指南
  • 如何选择试验机厂家?这几家品牌值得关注,摩擦系数仪/分析仪/试验机/测试仪/测厚仪/检测仪/扭矩仪,试验机企业排行榜单 - 品牌推荐师
  • 横评后发现,一键生成论文工具,千笔·专业论文写作工具 VS 万方智搜AI
  • 题解:删数最大子段和
  • 摆脱论文困扰!10个AI论文写作软件测评:本科生毕业论文+开题报告高效工具推荐
  • 对比一圈后 9个一键生成论文工具深度测评:MBA毕业论文与科研写作必备推荐
  • 股市赚钱学概论:赚钱理之九,赚守住的钱
  • 六角晶格结构是一种常见的晶体结构,其中原子或分子排列成六角形的周期性网络。 在这种结构中
  • 初升高英语分班冲刺卷推荐:2026年精选题库解析,入学分班卷/分班卷/暑假练习册/名著考点,冲刺卷源头厂家品牌推荐 - 品牌推荐师
  • 数学 物理:八幕对应史诗
  • 当下-新云天明的童话
  • 2026年宁波高端红茶批发市场观察与厂家推荐,山水印红茶/有机认证高端红茶/生态红茶,高端红茶供应厂家怎么选 - 品牌推荐师
  • mysql replace某个字段并重新复制
  • 数学工具 物理学:一一对应全景
  • 攻防实战视角下的网络弹性重构——CISA红队评估启示与关键基础设施安全升级路径
  • RustSalvo框架上传文件接口(带参数)400错误解决方案
  • 中国科学技术大学计算机考研复试【经验分享】
  • 中国海洋大学计算机考研复试【经验分享】
  • 题解:单词的划分
  • 基于MATLAB搭建的准Z源NpC三电平逆变器拓扑,利用SVPWM调制算法,加入了中性点平衡算...
  • 数学体系全景图
  • 人工智能之视觉领域 计算机视觉 第十二章 视频目标跟踪
  • GitHub标星破万!程序员福音,82.5%准确率!这个开源项目重新定义了Text2SQL
  • OpenClaw(Clawdbot):2026年阿里云服务器快速搭建指南
  • 盒马鲜生礼品卡回收新妙招,闲置变现金就这么简单 - 京顺回收
  • 题解:数列划分
  • OpenClaw(Clawdbot):2026阿里云服务器部署指南,高效实用宝典超赞