csp信奥赛C++高频考点专项训练之字符串 --【字符统计】:连续出现的字符
csp信奥赛C高频考点专项训练之字符串 --【字符统计】连续出现的字符题目描述给定一个字符串在字符串中寻找第一个连续出现次数不低于k kk次的字符。输入格式2 22行。第1 11行是k kk第2 22行是仅包含大小写字母的字符串。输出格式字符串中第一个连续出现次数不低于k次的字符。如果没有符合条件的字符输出No。输入输出样例 #1输入 #13 abcccaaab输出 #1c说明/提示1 ≤ k ≤ 1000 1\leq k\leq10001≤k≤1000字符串长度不超过1000 10001000。思路分析核心思想统计当前连续相同字符的长度cnt每次更新cnt后立即检查是否达到k。遍历索引i从 0 到原字符串最后一个字符的位置。若s[i] s[i1]则连续长度cnt否则重置cnt 1表示新一段的开始。无论相等还是不等更新cnt后都判断cnt k若成立则当前字符s[i]就是第一个连续出现次数不低于k次的字符直接输出并结束。若循环结束未输出则输出No。一个技巧在字符串末尾添加一个空格字符目的是安全地遍历所有原字符避免s[i1]越界。关键点因为判断在每次cnt更新后立即进行所以能正确处理k 1的情况当字符改变时cnt被重置为 1随后检查到cnt 1就会输出新段的第一个字符。末尾加空格保证了当最后一段结束时会与空格比较而触发else分支重置cnt 1但不会误输出因为k ≥ 1时前面已处理完。代码实现#includebits/stdc.husingnamespacestd;intk;string s;intmain(){cinks;s ;// 末尾加空格防止循环中访问越界intcnt1;// 当前连续相同字符的长度初始为1第一个字符// 循环条件i 从 0 到 s.size()-2即原字符串的最后一个字符索引for(inti0;is.size()-1;i){if(s[i]s[i1]){// 相邻字符相等连续长度增加cnt;}else{// 相邻字符不等连续段结束重置长度为1新段开始cnt1;}// 每次更新cnt后立即检查是否达到要求if(cntk){couts[i];// 输出当前字符return0;// 直接结束程序}}coutNo;// 未找到符合条件的字符return0;}功能分析输入处理读取整数k和字符串s然后在s末尾添加一个空格字符。遍历与统计初始化cnt 1表示第一个字符已连续出现 1 次。遍历原字符串的每个字符索引i比较它与下一个字符。若相等连续长度cnt自增若不等连续长度重置为 1。每次更新cnt后判断cnt k是否成立。输出结果一旦cnt k立即输出当前字符s[i]并结束程序。若循环结束仍未触发输出No。时间复杂度O(n)n 为原字符串长度。空间复杂度O(n)存储字符串末尾加空格多一个字符。【完整系列请查看专栏】信奥赛C普及组CSP-J一等奖通关刷题题单及题解https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转各种学习资料助力大家一站式学习和提升#includebits/stdc.husingnamespacestd;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标准模板库STLhttps://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 点击跳转· 文末祝福 ·#includebits/stdc.husingnamespacestd;intmain(){cout跟着王老师一起学习信奥赛C;cout 成就更好的自己 ;cout csp信奥赛一等奖属于你! ;return0;}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2587702.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!