给我们一个长度为n,仅由字符‘A’和’B’组成的字符串s,我们可以对字符串s执行以下操作:
(1) 选择一个索引值i(1<=i<=n-1),并确保si=‘A’,si+1=’B’;
(2) 交换si和si+1两个元素的值;
对每个索引值i(1<=i<=n-1),我们最多执行上述操作1次;当然,我们可以按照任意次序执行上述操作;
请问,我们最多可以执行上述操作多少次?给我们一个长度为n,仅由字符‘A’和’B’组成的字符串s,我们可以对字符串s执行以下操作:
(1) 选择一个索引值i(1<=i<=n-1),并确保si=‘A’,si+1=’B’;
(2) 交换si和si+1两个元素的值;
对每个索引值i(1<=i<=n-1),我们最多执行上述操作1次;当然,我们可以按照任意次序执行上述操作;
请问,我们最多可以执行上述操作多少次?第一行一个整数t(1≤t≤1000):测试用例数;
接下来共2t行,每个测试用例两行:
第一行一个整数n (n≤200000):字符串s的长度;
第二行为n个‘A’和‘B’组成的字符串s;
输出共t行,每个测试用例一行一个整数:对字符串执行操作的最大次数;
3 2 AB 4 BBBA 4 AABB
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次;