#include <stdio.h> #include <stdlib.h> int main() { int n=0; scanf("%d", &n); char* input = (char*)malloc(sizeof(char)*n); scanf("%s", input); long int num=0; //建立两个表,分别是当前指针之前的字母表和之后的字母表 long int before[26]={0}; long int behind[26]={0}; long int beforenum=0; //先写出后表中每个字母的个数 for(int i=1; i<n; i++) { behind[input[i]-'a']++; } for(int i=1; i<n-1; i++) { beforenum++; behind[input[i]-'a']--; before[input[i-1]-'a']++; //当前指针后面的字母表中有 behind[input[i]-'a']个相同字母 //当前指针前面的字母表中有beforenum-before[input[i]-'a']个不同字母 num += (beforenum-before[input[i]-'a'])* behind[input[i]-'a']; } printf("%ld", num); return 0; }