class Solution {
public:
int countPalindromicSubsequence(string s) {
vector<pair<int, int>> v(26, {-1, -1});
for (int i = 0; i < s.size(); i++) {
if (v[s[i] - 'a'].first == -1) v[s[i] - 'a'].first = i;
else v[s[i] - 'a'].second = i;
}
int res = 0;
for (int i = 0; i < 26; i++) {
if (v[i].second != -1) {
unordered_set<char> tmp;
for (int j = v[i].first + 1; j < v[i].second; j++) tmp.insert(s[j]);
res += tmp.size();
}
}
return res;
}
};