AcWing 771. 字符串中最长的连续出现的字符
原题链接
中等
作者:
chais
,
2023-11-02 10:52:05
,
所有人可见
,
阅读 40
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
string s;
cin>>s;
int num[2000]={0};//某字母某一段出现的次数
int length=s.length();
char zimu;//记录当前字母
int h=0;
char lem[1000];//与num相照应某字母
for(int k=0;k<length;k++)//慢指针
{
if(s[k]!='#')
{
zimu=s[k];
int count=0;
int j=k;
while(1)//连续字母个数
{
if(s[j]==zimu)//如果是相同的字母
{count++;
s[j]='#';
j++;
}
else //一旦遇到不一样的字母
break;
}
num[h]=count;//记录第一段连续的字母的个数
lem[h]=zimu;//记录第二段连续的字母
h++;
}
}
int max=0;
char mas;
int m=0;
while(num[m])//选取最大的一段
{
if(num[m]>max)
{
max=num[m];
mas=lem[m];
}
m++;
}
cout<<mas<<" "<<max<<endl;
}
return 0;
}