#hASHybttg020108. 1462:Antisymmetry
1462:Antisymmetry
好的,这是整理好的题面,格式清晰。
题目描述
对于一个 01 字符串,如果将这个字符串的 0 和 1 取反(0 变 1,1 变 0)后,再将整个串反过来,结果和原串一样,就称作“反对称”字符串。
例如:
- "00001111" 取反得 "11110000",反过来得 "00001111",与原串一样,是反对称的。
- "010101" 取反得 "101010",反过来得 "010101",与原串一样,是反对称的。
- "1001" 取反得 "0110",反过来得 "0110",与原串 "1001" 不同,所以不是反对称的。
现在给出一个长度为 ( N ) 的 01 字符串,求它有多少个子串是反对称的(子串是原串中连续的一段)。
输入格式
第一行一个正整数 ( N )(( N \le 500,000 ))。
第二行一个长度为 ( N ) 的 01 字符串。
输出格式
一个正整数,表示反对称子串的个数。
数据范围
- ( N \le 500,000 )
输入样例
8
11001011
输出样例
7
样例解释
字符串 11001011,反对称子串有:
01(位置 3–4)01(位置 6–7)10(位置 2–3)10(位置 7–8)0101(位置 3–6)1100(位置 1–4)001011(位置 3–8)
总共 7 个。