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

csp信奥赛C++高频考点专项训练之字符串 --【字符统计】:连续出现的字符

csp信奥赛C++高频考点专项训练之字符串 --【字符统计】:连续出现的字符

题目描述

给定一个字符串,在字符串中寻找第一个连续出现次数不低于k kk次的字符。

输入格式

2 22行。第1 11行是k kk;第2 22行是仅包含大小写字母的字符串。

输出格式

字符串中第一个连续出现次数不低于k次的字符。如果没有符合条件的字符,输出No

输入输出样例 #1
输入 #1
3 abcccaaab
输出 #1
c
说明/提示

1 ≤ k ≤ 1000 1\leq k\leq10001k1000,字符串长度不超过1000 10001000

思路分析

核心思想:统计当前连续相同字符的长度cnt,每次更新cnt后立即检查是否达到k

  • 遍历索引i从 0 到原字符串最后一个字符的位置。
  • s[i] == s[i+1],则连续长度cnt++;否则重置cnt = 1(表示新一段的开始)。
  • 无论相等还是不等,更新cnt后都判断cnt == k
    • 若成立,则当前字符s[i]就是第一个连续出现次数不低于k次的字符,直接输出并结束。
  • 若循环结束未输出,则输出"No"

一个技巧:在字符串末尾添加一个空格字符,目的是安全地遍历所有原字符,避免s[i+1]越界。

关键点

  • 因为判断在每次cnt更新后立即进行,所以能正确处理k = 1的情况(当字符改变时cnt被重置为 1,随后检查到cnt == 1就会输出新段的第一个字符)。
  • 末尾加空格保证了当最后一段结束时,会与空格比较而触发else分支,重置cnt = 1,但不会误输出(因为k ≥ 1时前面已处理完)。

代码实现

#include<bits/stdc++.h>usingnamespacestd;intk;string s;intmain(){cin>>k>>s;s+=" ";// 末尾加空格,防止循环中访问越界intcnt=1;// 当前连续相同字符的长度,初始为1(第一个字符)// 循环条件:i 从 0 到 s.size()-2(即原字符串的最后一个字符索引)for(inti=0;i<s.size()-1;i++){if(s[i]==s[i+1]){// 相邻字符相等,连续长度增加cnt++;}else{// 相邻字符不等,连续段结束,重置长度为1(新段开始)cnt=1;}// 每次更新cnt后立即检查是否达到要求if(cnt==k){cout<<s[i];// 输出当前字符return0;// 直接结束程序}}cout<<"No";// 未找到符合条件的字符return0;}

功能分析

  1. 输入处理:读取整数k和字符串s,然后在s末尾添加一个空格字符。
  2. 遍历与统计
    • 初始化cnt = 1,表示第一个字符已连续出现 1 次。
    • 遍历原字符串的每个字符(索引i),比较它与下一个字符。
    • 若相等,连续长度cnt自增;若不等,连续长度重置为 1。
    • 每次更新cnt后,判断cnt == k是否成立。
  3. 输出结果
    • 一旦cnt == k,立即输出当前字符s[i]并结束程序。
    • 若循环结束仍未触发,输出"No"

时间复杂度:O(n),n 为原字符串长度。
空间复杂度:O(n)(存储字符串,末尾加空格多一个字符)。


【完整系列请查看专栏】:
信奥赛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/762556/

相关文章:

  • R 4.5回测结果可信吗?用Kolmogorov-Smirnov检验+Monte Carlo置换测试验证策略有效性(附可复现R脚本与p值阈值决策树)
  • 喜讯!奋飞咨询助力广东汽车供应链企业斩获Ecovadis金牌! - 奋飞咨询ecovadis
  • 2026年重庆百创星图在企业宣传片拍摄方面费用多少? - 工业品牌热点
  • iOS党看过来!AnkiMobile保姆级设置指南:从卡组创建到FSRS算法开启(附资源下载)
  • Sparse-BitNet:1.58位量化与半结构化稀疏的模型压缩技术
  • Rekall核心组件源码分析:理解内存取证框架的实现原理
  • 2026年|收藏提醒:知网3月28日再度升级,你的论文AI率或需重测 - 降AI实验室
  • Elasticsearch Ruby 客户端完全指南:从零开始构建高效搜索应用
  • PopClip Extensions终极指南:如何通过300+扩展彻底改变你的Mac工作流
  • 靠谱的富硒大米品牌,中硒谷农业排名 - 工业品牌热点
  • Iwara视频下载终极指南:从零基础到高效批量下载
  • 3个核心功能解析:FakeLocation如何实现应用级位置模拟的精准控制
  • 告别格式噩梦:用Typst构建可编程、自动化的现代化简历
  • MB-Lab面部表情系统完全教程:打造生动角色动画
  • 高速护坡履带割草机品牌厂家2026年|源头直供真能省多少? - 博客万
  • AI音频生成加速:语义预热技术解析与实践
  • Electron项目架构解析:模块化设计与代码组织最佳实践
  • Plane.dev架构解析:深入理解分布式会话后端编排系统
  • ComfyUI Manager终极配置指南:高效管理自定义节点与模型下载优化
  • 3步实现智能视频PPT提取:揭秘计算机视觉如何解放你的双手
  • 如何用LeaguePrank轻松自定义你的英雄联盟游戏展示?3分钟快速上手指南
  • Framer Manager:为AI Agent设计的自动化站点管理工具
  • 2026年歌乐美沙发口碑排名如何 - 工业品牌热点
  • DamaiHelper终极指南:3分钟掌握大麦网自动化抢票脚本的完整使用教程
  • GitHub保姆级入坑指南(社交篇):别再当“透明人”,手把手教你混进别人的项目和组织
  • 树莓派4扩展套件Pironman评测与优化指南
  • 2026年专业的环保无甲醛原木风家具源头工厂排名 - 工业品牌热点
  • 大语言模型幻觉风险:特征分析与缓解策略
  • Electron原生UI组件实战:对话框、托盘和拖拽功能实现
  • 如何快速构建专业CMS系统:Cookiecutter模板终极指南