a 1
ab 2
aba 2
abab 2
ababc 3
b 1
ba 2
bab 2
babc 3
a 1
ab 2
abc 3
b 1
bc 2
c 1
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
string s;
cin>>s;
long long len=s.length();
long long ans=0;//最终答案
for(long long i=0;i<len;i++)
{
if(i==0) ans+=len;
else
{
long long pos=s.rfind(s[i],i-1);
if(pos==-1)
{
ans+=(long long)((i+1)*(len-i));
}
else
{
ans+=(long long)((i+1)*(len-i)-(pos+1)*(len-i));
}
}
}
cout<<ans;
return 0;
}
属于纯观察找规律了
另外注意 结果很大 要开long long
比赛的时候长点心