本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。
欢迎大家订阅我的专栏:算法题解:C++与Python实现!
附上汇总贴:算法竞赛备考冲刺必刷题(C++) | 汇总
【题目来源】
洛谷:B2126 连续出现的字符 - 洛谷
【题目描述】
给定一个字符串,在字符串中寻找第一个连续出现次数不低于k kk次的字符。
【输入】
2 22行。第1 11行是k kk;第2 22行是仅包含大小写字母的字符串。
【输出】
字符串中第一个连续出现次数不低于k次的字符。如果没有符合条件的字符,输出No。
【输入样例】
3 abcccaaab【输出样例】
c【算法标签】
#入门# #语法基础#
【代码详解】
#include<bits/stdc++.h>usingnamespacestd;intmain(){intk;// 需要寻找的连续出现次数intcn=1;// 当前字符连续出现的次数,初始化为1intlen;// 字符串长度cin>>k;// 输入kchars[2505];// 输入字符串cin>>s;// 输入字符串// 特殊情况处理:k=1if(k==1)// 如果k为1,为特例{cout<<s[0];// 直接输出第0个字符,即为连续出现1次的字符return0;// 结束程序}len=strlen(s);// 获取字符串长度// 遍历字符串,从第2个字符开始(下标1)for(inti=1;i<len;++i){if(s[i]==s[i-1])// 如果当前字符和前一个字符相同{cn++;// 那么字符连续出现,连续出现的次数加1if(cn>=k)// 如果已经连续出现k次{cout<<s[i];// 输出这个字符return0;// 结束程序}}else// 如果当前字符与前一个字符不同{cn=1;// 那么重新开始计数,当前字符连续出现1次}}cout<<"No";// 如果没有能达到连续出现k次的情况,输出Noreturn0;// 程序正常结束}【运行结果】
3 abcccaaab c