#P786. 反对称串

反对称串

题目描述

有一个仅由 01 组成的字符串。对于它的某个子串,如果将 01 互换(即 0110)并且将字符串倒过来,得到的字符串与原字符串相同,则认为该子串是"反对称"的。例如,子串 01 互换并倒过来是 10,与原串不同;子串 0110 互换并倒过来是 1001,与原串不同;而 0101 互换并倒过来是 1010 还是不同。符合条件的例子:0011 互换并倒过来是 11000011。等等,实际上"反对称"要求:reverse(s) = invert(s),其中 invert0110

给出一个长度为 NN01 字符串,请你计算有多少个子串是"反对称"的。

输入格式

第一行一个正整数 NN
第二行一个长度为 NN01 字符串。

输出格式

一行一个整数,表示"反对称"子串的个数。

样例

8
11001011
7

数据范围

1N100001 \le N \le 10000,子串是原字符串中连续的一段。

来源

CodesOnline