代码如下
#include<bits/stdc++.h>
using namespace std;
long long n;string s;
vector<pair<char,long long> > run_len;
void run_len_code(string s){
long long len=1;
for(long long i=0;i<s.size();i++){
if(s[i]!=s[i+1]){
run_len.push_back(make_pair(s[i],len));
len=1;
}
else len++;
}
}
int main()
{
cin>>n>>s;
run_len_code(s);
for(long long i=0;i<run_len.size();i++)
cout<<run_len[i].first<<run_len[i].second<<"\n";
long long ans=0;
for(long long i=1;i<run_len.size()-1;i++){
long long lhs=max(run_len[i-1].second-1,0ll),rhs=max(run_len[i+1].second-1,0ll);
ans+=lhs*rhs+max(lhs-1, 0ll) + max(rhs-1,0ll);
}
cout<<ans;
return 0;
}
样例都过不去