#include <bits/stdc++.h>
using namespace std;
#define LL long long
#define int LL
const int N = 2e6 + 10;
map<pair<LL, LL>, LL>hax;
int n;
LL ans;
stack<char>st;
char s[N];
const int quan1 = 31;
const LL MOD1 = 2062122777777;
const LL inv1 = 465640627240;
const int quan2 = 101;
const LL MOD2 = 20621229997;
const LL inv2 = 13679429800;
LL yaw1, yaw2;
signed main(){
freopen("game.in","r",stdin);
freopen("game.out","w",stdout);
scanf("%d", &n);
scanf("%s", s + 1);
hax.insert(make_pair(make_pair(0, 0), 1));
for (int i = 1; i <= n; i++){
bool tag = 1;
if (!st.empty()){
if (st.top() == s[i]){
st.pop();
tag = 0;
yaw1 = ((yaw1 - (s[i] - 'a' + 1) * quan1) + MOD1) % MOD1;
yaw1 = (yaw1 * inv1) % MOD1;
yaw2 = ((yaw2 - (s[i] - 'a' + 1) * quan2) + MOD2) % MOD2;
yaw2 = (yaw2 * inv2) % MOD2;
}
}
if (tag){
st.push(s[i]);
yaw1 = (yaw1 * quan1) % MOD1;
yaw1 = (yaw1 + (s[i] - 'a' + 1) * quan1) % MOD1;
yaw2 = (yaw2 * quan2) % MOD2;
yaw2 = (yaw2 + (s[i] - 'a' + 1) * quan2) % MOD2;
}
pair<LL, LL> PLL = make_pair(yaw1, yaw2);
ans += hax[PLL];
hax[PLL]++;
}
printf("%lld", ans);
return 0;
}