输入样例
4
8
BWWWWWWB
4
BWBB
5
WWWWW
3
BWB
输出案例
3
6 2 4
-1
0
2
2 1
import java.util.*;
class Main{
static int[] res = new int[605];// 操作记录数组
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
while (T-- != 0)
{
int n = sc.nextInt();
String s = sc.next();
int w = 0;// 白块数量
int b = 0;// 黑块数量
for (int i = 0; i < s.length(); i++)
{// 求出黑白块的数量
if (s.charAt(i) == 'W')
w++;
else
{
b++;
}
}
if (b == 0 || w == 0)// 本就是一色的情况
{
System.out.println(0);
} else if (b % 2 == 1 && w % 2 == 1)
{// 两种颜色都是奇数个,无解
System.out.println(-1);
} else
{
// 转换策略,转换为 奇数个 的颜色,如果都是偶数,选第一个颜色
char[] a = s.toCharArray();// 转为数组好操作
char col = a[0];// 要转换成的颜色
if (b % 2 == 1)
col = 'B';
else if (w % 2 == 1)
col = 'W';
int cnt = 0;// 记录操作次数
for (int i = 0; i < a.length; i++)
{
if (a[i] != col)
{
res[cnt++] = i + 1;
a[i] = col;
a[i + 1] = a[i + 1] == 'W' ? 'B' : 'W';
}
}
System.out.println(cnt);
for (int i = 0; i < cnt; i++)
{
System.out.print(res[i] + " ");
}
System.out.println();
}
}
}
}