C Program
#include<stdio.h>
#include<string.h>
int findmax(int* Count){ // mandatory
int m=0;
for(int i=0;i<26;i++)
if(Count[i]>m) m=Count[i];
return m;
}
int main(){
int T;
scanf("%d",&T);
while(T--){
int n;
scanf("%d",&n);
char s[100005];
scanf("%s",s);
int cnt[26]={0};
int l=0,ans=1;
for(int r=0;r<n;r++){
cnt[s[r]-'a']++;
while(1){
int len=r-l+1;
int mx=findmax(cnt);
if(mx >= len/2) break;
cnt[s[l]-'a']--;
l++;
}
if(r-l+1 > ans) ans=r-l+1;
}
printf("%d\n",ans);
}
}
0 Comments