#ACM0077. 江月诗的好串
江月诗的好串
题目描述
江月诗有一个长度为 的字符串 ,仅由字符 和 字符 组成,江月诗认为字符( 或 )全部连续地排列在一起,形成恰好一个连续的 块的字符串就是一个 好串。
现在你可以进行多次操作,每次操作,你可以选择一个位置 (),交换相邻的字符 和 。
你需要用最少的操作次数,让最终的字符串变为 好串。
注意:另一种字符可以在这个块的前面或后面,形成最多两个(可能为空)的块。
以下是一些好串的最终形式示例:
- —— 所有的 连续在一起(一个块), 可以在这个块前后;
- —— 所有的 连续在一起, 则在字符串边缘;
- 或 —— 两种字符分别各自形成一个连续块。
你需要计算,实现上述目标状态所需的最小操作次数。
输入格式
输入包含若干组测试数据。
第一行输入一个整数 (),表示测试用例的组数。
每组测试数据第一行输入一个整数 (),表示字符串 的长度。
第二行输入一个仅包含字符 和 ,长度为 的字符串 。
保证所有测试用例中 的总和不超过 。
输出格式
对于每组测试数据,输出一行一个整数,表示使同一种字符形成一个连续块所需的最小操作次数。
输入输出样例 #1
输入 #1
5
4
abab
6
bababa
7
abababa
2
ab
1
b
输出 #1
1
2
2
0
0
说明/提示
在第一个测试用例中,初始字符串为 :
- 交换相邻的第 和 个字符后,得到字符串 ;
- 或交换第 和 个字符后,得到字符串 。
两种情况下都只需操作一次,之后同一类字符已经连在一起,故最少操作次数为 。
在第五个测试用例中,字符串仅包含一个字符 。单个字符已经形成了连续块,不需要任何操作,输出 。
相关
在下列比赛中: