n = int(input())
s = input()

# 把三元组 (i, j, k) 拆成
# “左边有多少跟 j 不同的字符” × “右边有多少跟 j 相同的字符”,
# 然后对所有位置 j 累加即可。

count=[0]*26
dp=[0]*26
res=0
for i in range(len(s)):
    c=ord(s[i])-97 #97转到0
    res+= dp[c] #c作为k来考虑的
    dp[c]+=i-count[c] #c作为j来考虑,统计在j之前有多少个和c不同的字符
    #注意要用+=,因为后面遇到 c 作为 k 的时候,前面出现的每个 c 都可以作为 j
    count[c]+=1 #没什么坏心眼,统计的就是从左到右扫描到 i 的时候,c 出现的次数

print(res)


乘法原理,考虑 j 之前和 s[j]不同的字符数,和 j 之后和 s[j]相同的字符数

从左到右进行扫描,得到 dp[c]