题目描述
给定一个字符串,在字符串中寻找第一个连续出现次数不低于 k 次的字符。
输入格式
2 行。第 11 行是 k;第 2 行是仅包含大小写字母的字符串。
输出格式
字符串中第一个连续出现次数不低于 k 次的字符。如果没有符合条件的字符,输出 No。
小小的思路
题意
输入一个数,一个字符串,输出第一个连续出现次数不低于 k次的字符
tazuh刚开始这么写
#include<iostream>
#include<cstring>
using namespace std;
int main(){
int a,c=1;
string b;
cin>>a>>b;
for(int i=0;i<b.length();i++){
if(b[i]==b[i+1]){
c++;
}else if(c>=a){
cout<<b[i];
return 0;
}
}
return 0;
}

半点问题也木有
可

愣是给我整个80分
分析
emmm···
好像计数器没重置。
于是我又改了改
#include<iostream>
#include<cstring>
using namespace std;
int main(){
int a,c=1;
string b;
cin>>a>>b;
for(int i=0;i<b.length();i++){
if(b[i]==b[i+1]){
c++;
}else if(c>=a){
cout<<b[i]<<endl;
return 0;
}else{
c=1;
}
}
return 0;
}
本以为结束了
可是

才多给我10分
再次分析
emmm···
第二个if位置放错了。
我又改了改
#include<iostream>
#include<cstring>
using namespace std;
int main(){
int a,c=1;
string b;
cin>>a>>b;
for(int i=0;i<b.length()-1;i++){
if(b[i]==b[i+1]){
c++;
if(c>=a){
cout<<b[i]<<endl;
return 0;
}
}else{
c=1;
}
}
return 0;
}
又
在我哥哥的教导下
还得再添一个if在else里。
我又又改了改
#include<iostream>
#include<cstring>
using namespace std;
int main(){
int a,c=1;
string b;
cin>>a>>b;
for(int i=0;i<b.length()-1;i++){
if(b[i]==b[i+1]){
c++;
if(c>=a){
cout<<b[i]<<endl;
return 0;
}
}else{
if(c>=a){
cout<<b[i]<<endl;
return 0;
}
c=1;
}
}
return 0;
}
又又

哥哥分析
哥哥说:“这臭弟弟,少加个‘No’”。
我:“哦哦!”。
#include<iostream>
#include<cstring>
using namespace std;
int main(){
int a,c=1;
string b;
cin>>a>>b;
for(int i=0;i<b.length()-1;i++){
if(b[i]==b[i+1]){
c++;
if(c>=a){
cout<<b[i]<<endl;
return 0;
}
}else{
if(c>=a){
cout<<b[i]<<endl;
return 0;
}
c=1;
}
}
cout<<"No"<<endl;
return 0;
}
终于

博客围绕在字符串中寻找第一个连续出现次数不低于k次字符的算法题展开。介绍了题目描述、输入输出格式,作者在解题过程中多次修改代码,从最初得80分,经分析发现计数器未重置、if位置错误等问题,最后在哥哥教导下完善代码。
554

被折叠的 条评论
为什么被折叠?



