题目要求统计一个字符串中有多少个非空子串满足:
对于该子串中所有出现过的字符,它们的出现次数两两相等。
例如:
"a" 中只出现了字符 a,次数为 1,是好子串;给定一个长度为 n、仅由小写字母组成的字符串 s (下标从 1 开始)。定义一个非空子串t是好子串,当且仅当在 t 中,所有出现过的字符的出现次数两两相等。请你计算字符串 s 中共有多少个好子串。
【名词解释】
每个测试文件均包含多组测试数据。第一行输入一个整数 T(1≤T≤100) 代表数据组数,每组测试数据描述如下:
第一行输入一个整数 n(1≤n≤2×103) 表示字符串长度;
第二行输入一个长度为 n、仅由小写字母组成的字符串 s 。
除此之外,保证单个测试文件的 n 之和不超过 2080 。
对于每一组测试数据,新起一行。
输入
2
3
aab
4
abab
输出
5
8
说明
在第一组测试数据中,s="aab",所有子串为(按区间列举):
[1,1]="a"(好);[1,2]="aa"(好);[1,3]="aab"(不好);
[2,2]="a"(好);[2,3]="ab"(好);[3,3]="b"(好)。
共计 5 个好子串。