题解看的这个大佬的,写的超好
(https://www.acwing.com/solution/content/101438/)
借鉴的代码如下
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int dp[100010];
int f[26],pf[26];
int main()
{
string s;
cin>>s;
s.insert(0," ");
ll ans=0;
int n=s.size();
for(int i=1;i<n;i++){
int t=s[i]-'a';
dp[i]=dp[i-1]+i-2*f[t]+pf[t];
pf[t]=f[t];
f[t]=i;
}
for(int i=1;i<n;i++) ans+=dp[i];
cout<<ans;
return 0;
}