问题 6267 --字符交换

6267: 字符交换

时间限制: 1 Sec  内存限制: 128 MB
提交: 137  解决: 17
[提交][状态][命题人:]

题目描述

给我们一个长度为n,仅由字符‘A’和’B’组成的字符串s,我们可以对字符串s执行以下操作:

(1)     选择一个索引值i1<=i<=n-1,并确保si=A’si+1=B’

(2)     交换sisi+1两个元素的值;

对每个索引值i1<=i<=n-1),我们最多执行上述操作1次;当然,我们可以按照任意次序执行上述操作;

请问,我们最多可以执行上述操作多少次?

输入

      第一行一个整数t(1≤t≤1000):测试用例数;

接下来共2t行,每个测试用例两行:

第一行一个整数n (n≤200000):字符串s的长度;

第二行为n个‘A’和‘B’组成的字符串s

输出

输出共t行,每个测试用例一行一个整数:对字符串执行操作的最大次数;

样例输入
Copy
3
2
AB
4
BBBA
4
AABB
样例输出
Copy
1
0
3

提示

在第一个测试样例中,我们可以选择i=1,执行上述操作1次。

在第二个测试样例中,没有合适的i可以选择,操作次数为0

在第三个测试样例中,我们可以这样操作:先选择i=2,字符串s变换为“ABAB”,然后选择i=3,字符串s变换为”ABBA”,最后选择i=1,字符串s变换为“BABA”。请注意,虽然次数i=2仍然满足,但是i=2在前面已经选择过1次,不能再选。所以,最大操作次数为3次;

来源

 

[提交][状态]