题目:828. 统计子串中的唯一字符
思路:乘法原理
class Solution {
public:
int uniqueLetterString(string s) {
int res = 0;
int n= s.size();
vector<int> li(n,-1);
vector<int> ri(n,n);
vector<int> flag(27,-1);
for(int i=0;i<n;++i){
if(flag[s[i]-'A']!=-1){
li[i] = flag[s[i]-'A'];
}
flag[s[i]-'A'] = i;
}
flag.assign(27,-1);
for(int i=n-1;i>=0;--i){
if(flag[s[i]-'A']!=-1){
ri[i] = flag[s[i]-'A'];
}
flag[s[i]-'A'] = i;
}
for(int i=0;i<n;++i){
res += (i-li[i])*(ri[i]-i);
}
return res;
}
};