#include<bits/stdc++.h>
using namespace std;
int main(){
long long t,n;
cin>>t;
char s[1000005],b[1000005];
while(t--){
cin>>n;
scanf("%s",s);
long long len=strlen(s);
for(int i=0;i<len;i++) b[i]=s[i];
long long ans=0,maxx=0;
for(int i=1;i<=10;i++){
ans=0;
for(int i=0;i<len;i++){
if(s[i]=='T'){
ans++;
}else if(s[i]=='B'){
if(s[i+1]=='T'&&s[i+2]=='T'&&s[i+3]=='B'){
if(ans<2) ans=2;
else ans++;
maxx=max(maxx,ans);
ans=0;
s[i]='T';
s[i+1]=s[i+2]='B';
s[i+3]='T';
}else {
maxx=max(maxx,ans);
ans=0;
}
}
maxx=max(maxx,ans);
}
ans=0;
for(int i=len-1;i>0;i--){
if(s[i]=='T'){
ans++;
}else if(s[i]=='B'){
if(i>=3){
if(s[i-1]=='T'&&s[i-2]=='T'&&s[i-3]=='B'){
if(ans<2) ans=2;
else ans++;
maxx=max(maxx,ans);
ans=0;
s[i]='T';
s[i-1]=s[i-2]='B';
s[i-3]='T';
}else {
maxx=max(maxx,ans);
ans=0;
}
}else {
maxx=max(maxx,ans);
ans=0;
}
}
maxx=max(maxx,ans);
}
}
for(int i=0;i<len;i++) s[i]=b[i];
for(int i=1;i<=10;i++){
ans=0;
for(int i=len-1;i>0;i--){
if(s[i]=='T'){
ans++;
}else if(s[i]=='B'){
if(i>=3){
if(s[i-1]=='T'&&s[i-2]=='T'&&s[i-3]=='B'){
if(ans<2) ans=2;
else ans++;
maxx=max(maxx,ans);
ans=0;
s[i]='T';
s[i-1]=s[i-2]='B';
s[i-3]='T';
}else {
maxx=max(maxx,ans);
ans=0;
}
}else {
maxx=max(maxx,ans);
ans=0;
}
}
maxx=max(maxx,ans);
}
ans=0;
for(int i=0;i<len;i++){
if(s[i]=='T'){
ans++;
}else if(s[i]=='B'){
if(s[i+1]=='T'&&s[i+2]=='T'&&s[i+3]=='B'){
if(ans<2) ans=2;
else ans++;
maxx=max(maxx,ans);
ans=0;
s[i]='T';
s[i+1]=s[i+2]='B';
s[i+3]='T';
}else {
maxx=max(maxx,ans);
ans=0;
}
}
maxx=max(maxx,ans);
}
}
cout<<maxx<<endl;
}
return 0;
}
只有第20个点wa了求hack数据