题目描述
给定一个字符串,在字符串中寻找第一个连续出现次数不低于 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;
}
终于