数据结构
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

你有一个长度为n的字符串,其中仅含'0','1','2'三个字符。
你希望知道,这个字符串有多少个子串,满足该子串的'0','1','2'个数相等?

输入描述:

第一行一个正整数,代表数据组数t(1\le t \le 10^4)
对于每组数据,第一行一个正整数n(1\le n \le 3\cdot 10^5),接下来一行一个长度为n的仅含'0','1','2'的字符串。
保证所有的n之和不超过3\cdot 10^5

输出描述:

对于每组数据,一行一个正整数表示答案。
示例1

输入

复制
4
3
012
6
001122
18
102100120120120012
18
012012012012012012

输出

复制
1
1
25
51

说明

对于前两个样例,仅有串本身满足条件。
对于第三个样例,举一个满足条件的子串:从第3个字符到第8个字符的子串210012满足条件。