#include<iostream>
#include<cstring>
#include<vector>
using namespace std;
#define int long long
const int N=5e5+5;
string s;
vector<int>g,h;
int n,res,s1,s2,t1,t2;
signed main()
{
cin>>n>>s;
if(s[0]=='G')
h.push_back(0);
else
g.push_back(0);
for(int i=0;i<s.size();i++)
if(s[i]=='G')
g.push_back(i+1);
else
h.push_back(i+1);
if(s[n-1]=='G')
h.push_back(n+1);
else
g.push_back(n+1);
for(int l=0,m=1,r=2;r<g.size();l++,m++,r++)
{
s1=(g[m]-g[l]-1),s2=(g[r]-g[m]-1),res+=s1*s2;
if(s2>1)
res+=s2-1;
if(s1>1)
res+=s1-1;
}
for(int l=0,m=1,r=2;r<h.size();l++,m++,r++)
{
s1=(h[m]-h[l]-1),s2=(h[r]-h[m]-1),res+=s1*s2;
if(s2>1)
res+=s2-1;
if(s1>1)
res+=s1-1;
}
cout<<res<<endl;
}
该AC代码在数据为下时输出0,正确答案为4:
5
GHHHG
数据来源:ACWing