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

csp信奥赛C++高频考点专项训练之字符串 --【字符串基础】:[蓝桥杯青少年组国赛 2025] 第一题

csp信奥赛C++高频考点专项训练之字符串 --【字符串基础】:[蓝桥杯青少年组国赛 2025] 第一题

题目描述

给你两个字符串S SST TT。你需要找出S SS中有多少个连续子串,能够与字符串T TT相匹配。

匹配规则如下:

  1. 进行匹配的S SS的子串,其长度必须与T TT的长度完全相同。
  2. 对于字符串T TT中的?字符,它可以匹配S SS子串中对应位置的任意字符。
  3. 对于字符串T TT中的字母(a, b, A, B),它可以与S SS子串中对应位置的字母进行对应字母但是大小写不同的匹配。例如,a可以匹配A(但是不能匹配a),B可以匹配b

请你计算出S SS中总共有多少个这样的匹配子串。

输入格式

输入两行。

第一行输入字符串S SS,保证只包含a,b,A,B这四种字符。

第二行输入字符串T TT,保证只包含a,b,A,B,?这五种字符。

输出格式

输出一个整数,表示S SS中能与T TT匹配的子串数量。

输入输出样例 #1
输入 #1
AabAaBAAbb a?B
输出 #1
3
说明/提示

对于100 % 100\%100%的数据,1 ≤ ∣ T ∣ ≤ ∣ S ∣ ≤ 1000 1 \le |T| \le |S| \le 10001TS1000

思路分析

本题要求统计字符串S中所有长度等于T的连续子串,满足自定义的匹配规则:

  • T中的?可以匹配S子串中的任意字符(a, b, A, B)。
  • T中的字母只能匹配S中对应位置大小写相反的同一字母。例如a只能匹配AA只能匹配abB同理。

数据范围很小(|S|,|T| ≤ 1000),因此可以直接枚举S的所有起始位置i,检查以i开始、长度为|T|的子串是否与T匹配。检查时逐字符比较,时间复杂度 O(|S|·|T|),完全可行。

匹配判断函数:对于第j个字符(0‑based),如果T[j] == '?'则直接通过;否则要求S[i+j]T[j]字母相同(忽略大小写)且大小写相反(即字符不相等)。利用tolower或直接枚举四种对应关系均可。

统计满足条件的子串个数并输出。

代码实现

#include<bits/stdc++.h>usingnamespacestd;// 判断字符c1和c2是否满足匹配规则boolmatch(charc1,charc2){if(c2=='?')returntrue;// ? 匹配任意// 字母必须相同(忽略大小写)且大小写相反returntolower(c1)==tolower(c2)&&c1!=c2;}intmain(){string s,t;cin>>s>>t;intn=s.size(),m=t.size(),ans=0;for(inti=0;i<=n-m;++i){// 枚举所有起始位置boolok=true;for(intj=0;j<m;++j){// 逐字符比较if(!match(s[i+j],t[j])){ok=false;break;}}if(ok)++ans;}cout<<ans<<endl;return0;}

功能分析

  1. 输入处理:读取字符串ST,长度分别记为nm
  2. 外层循环:遍历S中所有可能的子串起始位置i0n-m)。
  3. 内层匹配:对于每个起始位置,逐位检查S[i+j]T[j]是否符合规则:
    • T[j]?,则任意字符都合法。
    • 否则要求两个字符字母相同(忽略大小写)且大小写不同(例如aAbB)。
  4. 计数输出:每找到一个完整匹配的子串,计数器加一,最后输出结果。

【完整系列请查看专栏】:
信奥赛C++普及组CSP-J一等奖通关刷题题单及题解:
https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转


各种学习资料,助力大家一站式学习和提升!!!

#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"########## 一站式掌握信奥赛知识! ##########";cout<<"############# 冲刺信奥赛拿奖! #############";cout<<"###### 课程购买后永久学习,不受限制! ######";return0;}

【秘籍汇总】(完整csp信奥赛C++学习资料):

1、csp/信奥赛C++,完整信奥赛系列课程(永久学习):

https://edu.csdn.net/lecturer/7901 点击跳转

2、CSP信奥赛C++竞赛拿奖视频课:

https://edu.csdn.net/course/detail/40437 点击跳转

https://edu.csdn.net/course/detail/41081 点击跳转

3、csp信奥赛高频考点知识详解及案例实践:

CSP信奥赛C++动态规划:
https://blog.csdn.net/weixin_66461496/category_13096895.html点击跳转

CSP信奥赛C++标准模板库STL:
https://blog.csdn.net/weixin_66461496/category_13108077.html 点击跳转

信奥赛C++提高组csp-s知识详解及案例实践:
https://blog.csdn.net/weixin_66461496/category_13113932.html 点击跳转

4、csp信奥赛冲刺一等奖有效刷题题解:

信奥赛C++普及组CSP-J一等奖通关刷题题单及题解:
https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转

信奥赛C++提高组csp-j初赛&复赛真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转

信奥赛C++提高组csp-s初赛&复赛真题题解(持续更新):
https://blog.csdn.net/weixin_66461496/category_13125089.html 点击跳转

5、GESP C++考级真题题解:

GESP(C++ 一级+二级+三级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转

GESP(C++ 四级+五级+六级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转


GESP(C++ 七级+八级)真题题解(持续更新):
https://blog.csdn.net/weixin_66461496/category_13117178.html 点击跳转

· 文末祝福 ·

#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"跟着王老师一起学习信奥赛C++";cout<<" 成就更好的自己! ";cout<<" csp信奥赛一等奖属于你! ";return0;}
http://www.jsqmd.com/news/756353/

相关文章:

  • 北京外国语大学考研辅导班推荐:排名深度评测与选哪家分析 - michalwang
  • Obsidian PDF++终极指南:打造原生PDF标注与知识管理新体验
  • 南方科技大学考研辅导班推荐:排名深度评测与选哪家分析 - michalwang
  • 基于全志V3s的DIY Spotify播放盒设计与实现
  • 终极解决方案:如何在现代电脑上完美运行Flash游戏和内容
  • 运动木地板包工包料性价比高的公司推荐,河南大曌体育怎么样? - myqiye
  • Python 多线程完整入门
  • 2026 常州黄金回收盘点,福正美口碑炸裂领跑全城 - 福正美黄金回收
  • 深度剖析:如何用开源方案驯服Joy-Con手柄的底层协议
  • 利用快马平台与Python Flask快速构建个人博客原型
  • 网盘直链下载助手:八大云盘免登录高速下载技术解析
  • 从Mixamo到二次元:如何用Umotion Pro免费版快速重定向3D动画到你的VRoid角色(附避坑指南)
  • 上海大学考研辅导班推荐:排名深度评测与选哪家分析 - michalwang
  • 3步让小爱音箱秒变AI语音助手:MiGPT实战指南
  • 终端密码管理实战:pass-cli与OpenClaw技能构建自动化安全流程
  • 别再傻傻分不清了!嵌入式开发中串口、TTL、RS-232到底怎么连?一个USB转接板搞定所有
  • 求推荐靠谱的航空物流专业公司 - myqiye
  • ARM SME指令集:矩阵运算优化与实战技巧
  • 三星LPCAMM内存技术解析:低功耗可插拔内存的未来
  • 从自然语言到UI:基于LLM的vibe-to-ui项目架构解析与实战
  • 2026年亲测10款免费论文降AI工具,一篇就懂怎么选! - 降AI实验室
  • ‌镇江苏一塑业有限公司:专注PPH管材制造,为化工工程提供可靠防腐解决方案 - 苏一塑业13914572689
  • Clawd on Desk:实时可视化AI编码助手工作状态的桌面宠物应用
  • 深度解析tensafe/tsplay镜像:Docker容器化音视频播放与DRM集成实战
  • 基于MCP协议为LLM构建本地文本文件探索服务器
  • 2026年中国AI建筑智能体价格排名:费用高吗? - myqiye
  • CentOS/RHEL 7/8配置静态IPv6地址避坑指南:为什么你的地址总是‘tentative’无法激活?
  • 首都医科大学考研辅导班推荐:排名深度评测与选哪家分析 - michalwang
  • 2026国产AI多极引领,海外仅剩三短板
  • 东华大学考研辅导班推荐:排名深度评测与选哪家分析 - michalwang