#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int N = 2e6 + 10;
int n;
char a[N];
int mp[N][26], nxt[N];
long long f[N];
int main(){
scanf("%d\n", &n);
for(int i = 1; i <= n; i++)
scanf("%c", &a[i]);
for(int i = 1; i <= n + 1; i++){
nxt[i] = -1;
for(int j = 0; j < 26; j++)
mp[i][j] = -1;
}
for(int i = n; i >= 1; i--){
int pos;
if(a[i] == a[i + 1]){
nxt[i] = i+1;
pos = i+1;
}
else{
pos = mp[i+1][a[i]-'a'];
if(pos == -1)
continue;
nxt[i] = pos;
}
for(int j = 0; j < 26; j++)
mp[i][j] = mp[pos+1][j];
mp[i][a[pos+1]-'a'] = pos + 1;
}
long long ans = 0;
for(int i = n; i >= 1; i--){
if(nxt[i] == -1)
continue;
f[i] = f[nxt[i] + 1] + 1;
ans += f[i];
}
printf("%lld\n", ans);
return 0;
}