PAT 乙级题目讲解:1014《福尔摩斯的约会》
✅ PAT 乙级题目讲解1014《福尔摩斯的约会》摘要本文详解 PAT 乙级 1014 题《福尔摩斯的约会》。题目要求从四行乱码字符串中根据特定字符匹配规则解码出星期、小时和分钟。文章从题目分析、样例推演入手逐步拆解五大解题步骤并给出完整 C 代码实现与常见错误避坑指南适合 PAT 备考与字符串处理入门练习。 题目简介福尔摩斯收到一张奇怪的字条写着乱码一般的四行字符。作为一名侦探他很快发现这些乱码其实是一次约会的时间信息。我们的任务是根据字符间的相同规则解码出正确的星期、小时和分钟。规则如下星期前两个字符串中第一个相同的大写字母第几个字母就表示星期几小时前两个字符串中第一个相同的大写字母后出现的第一对相同字符用0~9表示 0 ~ 9 点A~N表示 10 ~ 23 点分钟后面两字符串第 1 对相同的英文字母出现的位置下标从 0 开始计。 样例分析输入示例3485djDkxh4hhGE 2984akDfkkkkggEdsb shgsfdk dHyscvnm分析过程前两个字符串中第一个相同的大写字母是D表示星期四THU前两个字符串中紧接着第二个相同的字符是E表示 14 点后面两字符串第一对相同的英文字母是s在索引 4从 0 开始计表示第 4 分钟。输出结果为THU 14:04 解题思路 变量说明变量名含义a, b前两行字符串用于确定星期和小时c, d后两行字符串用于确定分钟day表示星期几1~7通过字符 ‘A’~‘G’ 映射h小时m分钟w存储星期字符串的数组下标对应 day 值✅ Step 1读入输入字符串使用cin读取 4 行字符串分别赋值给变量a, b, c, d。cinabcd;✅ Step 2匹配星期几前两行字符串第一个相同的大写字母从左往右遍历a和b找到第一对相同的大写英文字母范围A~G转换为星期几。for(i0;ia.size();i){if(a[i]b[i](a[i]Aa[i]G)){daya[i]-A1;break;}}✅ Step 3匹配小时前两行字符串从上一步的下一个字符开始从上一次匹配的位置继续找第二对相同的字符要求字符为0~9表示 0 ~ 9 点A~N表示 10 ~ 23 点。i;// 从下一个位置开始找for(;ia.size();i){if(a[i]b[i](a[i]0a[i]9||a[i]Aa[i]N)){if(a[i]0a[i]9)ha[i]-0;elseha[i]-A10;break;}}✅ Step 4匹配分钟后两行字符串中第一个相同英文字母遍历字符串c和d找出第一个匹配的英文字母字符其位置索引即为分钟。for(inti0;ic.size();i){if(c[i]d[i]isalpha(c[i])){mi;break;}}✅ Step 5格式化输出结果使用星期数组w[day]输出星期小时和分钟使用%02d保证补零格式。coutw[day] ;printf(%02d:%02d,h,m);✅ 完整代码#includebits/stdc.husingnamespacestd;string a,b,c,d;intday,h,m;string w[10]{,MON,TUE,WED,THU,FRI,SAT,SUN};intmain(){cinabcd;// 1. 匹配星期几inti;for(i0;ia.size();i){if(a[i]b[i](a[i]Aa[i]G)){daya[i]-A1;break;}}// 2. 匹配小时i;for(;ia.size();i){if(a[i]b[i](a[i]0a[i]9||a[i]Aa[i]N)){if(a[i]0a[i]9)ha[i]-0;elseha[i]-A10;break;}}// 3. 匹配分钟for(inti0;ic.size();i){if(c[i]d[i]isalpha(c[i])){mi;break;}}// 4. 输出结果coutw[day] ;printf(%02d:%02d,h,m);return0;} 常见错误提醒错误类型说明星期字母范围错误仅限A~G不是所有大写字母都合法小时字符范围误判0~9与A~N才合法遍历位置未正确推进匹配第 2 个字符前需i移动位置输出格式错误小时/分钟需补零使用%02d✅ 总结归纳本题考查字符串逐位比较与格式化输出理解每组字符的映射含义是关键索引管理与字符范围判断尤为重要时间复杂度O(n)O(n)O(n)空间复杂度O(1)O(1)O(1) 思维拓展属于典型的“字符串逐位匹配 条件判断解码”题型使用w[day]进行【映射解码】是常见解题技巧与身份证号码校验、协议解析类问题具有结构类似可作为同类题训练模板

相关新闻

PAT 乙级题目讲解:1009《说反话》

PAT 乙级题目讲解:1009《说反话》

✅ PAT 乙级题目讲解:1009《说反话》📌 摘要: 本文讲解 PAT 乙级 1009 题《说反话》的解题方法。题目要求将输入英文句子的单词顺序逆序输出,而非字符反转。核心思路是利用 cin >> 自动按空格分词的特性,逐词读入…

2026/7/4 21:55:50阅读更多 →
API安全必修课:深入理解与防御Broken Function Level Authorization漏洞

API安全必修课:深入理解与防御Broken Function Level Authorization漏洞

1. 项目概述:当你的API门户洞开想象一下,你是一家公司的门卫。你的职责是检查每个进入大楼的人的身份(Authentication),确认他们是公司的员工。但仅仅确认身份就够了吗?显然不够。你还需要知道,…

2026/7/4 21:55:50阅读更多 →
FPDF多列布局指南:创建新闻稿和杂志样式PDF

FPDF多列布局指南:创建新闻稿和杂志样式PDF

FPDF多列布局指南:创建新闻稿和杂志样式PDF 【免费下载链接】FPDF FPDF is a PHP class which allows to generate PDF files with pure PHP. F from FPDF stands for Free: you may use it for any kind of usage and modify it to suit your needs. 项目地址: h…

2026/7/4 21:50:49阅读更多 →
双伺服打孔机PLC程序开发与同步控制实战

双伺服打孔机PLC程序开发与同步控制实战

1. 双伺服打孔机程序开发实战解析去年接手某钣金加工厂的自动化改造项目时,我遇到了一个典型需求——将老式气动打孔机升级为双伺服控制的精密加工设备。这个看似简单的需求背后,涉及到伺服同步控制、PLC逻辑优化、人机交互设计等多个技术难点。经过两个…

2026/7/4 23:01:02阅读更多 →
自动驾驶车队协同控制中的MPC-RL混合架构设计与优化

自动驾驶车队协同控制中的MPC-RL混合架构设计与优化

1. 自动驾驶车队协同控制的技术挑战在高速公路自动驾驶场景中,车队协同控制面临着多重技术挑战。传统燃油车辆的动力系统包含连续状态(如车速、加速度)和离散状态(如变速箱档位),这种混合特性使得优化问题变…

2026/7/4 23:01:02阅读更多 →
若依WMS仓库管理系统:5分钟打造你的智能仓储大脑

若依WMS仓库管理系统:5分钟打造你的智能仓储大脑

若依WMS仓库管理系统:5分钟打造你的智能仓储大脑 【免费下载链接】RuoYi-WMS-VUE 若依wms是一套基于若依的wms仓库管理系统,支持lodop和网页打印入库单、出库单。包括仓库/库区/货架管理,出入库管理,客户/供应商/承运商&#xff0…

2026/7/4 23:01:02阅读更多 →
Java反序列化漏洞实战:从原理到利用链构造与防御

Java反序列化漏洞实战:从原理到利用链构造与防御

1. 项目概述与核心价值 如果你是一名Java开发者、安全研究员或者对应用安全感兴趣的技术爱好者,那么“Java反序列化漏洞”这个词对你来说一定不陌生。它就像潜伏在Java应用深处的“幽灵”,利用起来门槛不低,但一旦被攻击者掌握,后…

2026/7/4 23:01:02阅读更多 →
KMR221与PIC18LF4455硬件协同设计与低功耗电压监测系统实现

KMR221与PIC18LF4455硬件协同设计与低功耗电压监测系统实现

1. KMR221与PIC18LF4455的硬件协同设计1.1 核心器件选型依据KMR221作为一款高精度电压监测芯片,其核心价值在于0.5%的电压检测精度和1.8V至5.5V的宽工作电压范围。在实际选型时,我特别看重其内置的电压基准源特性——这个设计细节使得系统不再需要外接基…

2026/7/4 23:01:02阅读更多 →
hot100 回文链表(234)

hot100 回文链表(234)

本算法采用快慢指针定位、局部链表反转与双指针线性比对的组合方案解决“回文链表”判定问题。其核心本质是在不开辟额外存储空间的前提下,通过修改原链表后半段的拓扑结构实现前后数据的空间对齐。当前提供的源码实现了时间复杂度 O(n) 和额外空间复杂度 O(1) 的最…

2026/7/4 22:56:02阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/7/4 14:25:39阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/7/4 14:57:00阅读更多 →
端到端自动驾驶:从GTC‘26看工程可信落地的核心逻辑

端到端自动驾驶:从GTC‘26看工程可信落地的核心逻辑

1. 项目概述:当算法工程师走进GTC26展厅,看到的不是芯片,而是“端到端”的呼吸节奏“端到端”这三个字,在GTC’26现场出现的频率,高得像NVLink带宽测试时的峰值曲线——它不再是一个论文里的技术路径选项,而…

2026/7/4 0:02:48阅读更多 →
缺牙修复科普:常见义齿类型与选择参考

缺牙修复科普:常见义齿类型与选择参考

缺牙修复科普:常见义齿类型与选择参考牙齿缺失是中老年人群中较为常见的口腔问题,不仅会造成咀嚼不便、进食受影响,长期还可能对营养摄入与日常社交带来困扰。义齿是改善缺牙问题的常用方式,目前市面上的义齿种类较多,…

2026/7/4 0:02:48阅读更多 →
STM32F091RC与LTC6904实现高精度方波信号生成

STM32F091RC与LTC6904实现高精度方波信号生成

1. 项目概述:LTC6904与STM32F091RC的精准方波生成方案在嵌入式系统开发中,精确的时钟信号和定时控制往往是项目成败的关键。LTC6904作为一款低功耗、高精度的可编程振荡器芯片,与STM32F091RC这款ARM Cortex-M0内核微控制器的组合,…

2026/7/4 0:02:48阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/4 1:16:56阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/4 2:33:55阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/4 2:33:55阅读更多 →