算相对距离,下标从0开始可能会错,记得偏移(+1)
此题是算每个字符在自己所能影响到子串的数量(即贡献值)
以后算字符串中的相对距离,且下标从0开始,都要进行+1偏移
(可以不看这句)若不进行+1偏移的话,pos[i]==0时,则有可能i的上一个位置是0号,也有可能i到目前为止是第一次出现
#include<bits/stdc++.h>
using namespace std;
#define ll long long
string str;
ll ans;
int pos[37];
int main(){
cin >> str;
int len=str.size();
for(int i=0;i<len;++i){
ans+=(ll)(len-i)*( i+1-pos[str[i]-'a'] );
pos[str[i]-'a']=i+1;
}
cout << ans;
return 0;
} 
