#include <bits/stdc++.h>
#define int long long
using namespace std;
const int maxn=500010;
int n,s[maxn],coun[maxn],max1;
int findmax(int now,int next,int pre,int cnt)
{
if(now==0) return 0;
int sum=0,sig=0;
if((coun[next]==2)&&next<cnt)
{
for(int i=now+1;i<next;i++)
{
if(coun[i]!=1)
{
sig=1;
break;
}
}
if(sig==0) sum++;
}
if(coun[pre]==2&&pre>1)
{
for(int i=now-1;i>pre;i--)
{
if(coun[i]!=1)
{
sig=1;
break;
}
}
if(sig==0) sum++;
}
return sum+coun[now];
}
signed main()
{
int T,cnt;
cin>>T;
for(int k=1;k<=T;k++)
{
cnt=1;
int mark=0;
max1=-999999;
cin>>n;
memset(coun,0,sizeof(coun));
memset(s,0,sizeof(s));
coun[1]=1;
for(int i=1;i<=n;i++)
{
char a;
cin>>a;
if(a=='T')
{
s[i]=1;
mark=1;
}
else s[i]=2;
}
if(mark==0)
{
cout<<0<<endl;
continue;
}
for(int i=2;i<=n;i++)
{
if(s[i]==s[i-1]) coun[cnt]++;
else
{
cnt++;
coun[cnt]++;
}
}
int now=0,pre=0,si,next=0;
if(s[1]==1) si=1;
else si=0;
for(int i=1;i<=cnt;i++)
{
if(coun[i]>=2&&i%2==si)
{
pre=now;
now=next;
next=i;
max1=max(max1,findmax(now,next,pre,cnt));
max1=max(max1,coun[i]);
}
}
max1=max(max1,findmax(next,0,now,cnt));
max1=
cout<<max1<<endl;
}
return 0;
}
我到底漏了什么啊???