题目描述
知识点:1:vector容器的使用
2:交换记得传地址进行改变值
blablabla
样例
blablabla
算法1
() $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
using namespace std;
int T,N;
string str;
void swap(char & a)
{
if(a=='W')
a='B';
else
a='W';
}
bool check(char a)
{
vector<int> cnt;
cnt.clear();
string s = str;
for(int i=0;i+1<N;i++)
{
if(s[i]!=a)
{
swap(s[i]);
swap(s[i+1]);
cnt.push_back(i);
}
}
if(s.back()!=a) return false;
if(!cnt.size()) cout<<0<<endl;
else
{
cout<<cnt.size()<<endl;
for(int x:cnt) cout<<x+1<<" ";
if(cnt.size()) cout<<endl;
}
return true;
}
int main()
{
cin>>T;
while(T--)
{
cin>>N>>str;
if(!check('B')&&!check('W')) cout<<-1<<endl;
}
return 0;
}
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla