思路:
既然要把整个棋盘变成这个样子:
WBWBWBWB
BWBWBWBW
WBWBWBWB
BWBWBWBW
WBWBWBWB
BWBWBWBW
WBWBWBWB
BWBWBWBW
那么你会发现:
B 与 W 是互相嵌套的
所以不管你怎么移动每一行棋盘,只要不是以下两种情况,那就不能组成需要的棋盘
BWBWBWBW 或 WBWBWBWB
所以只要每一行逐个判断是否与两种字符串的其中一个相同就可以了
AC CODE:
#include <bits/stdc++.h>
using namespace std;
string a[9];//棋盘的 8 行
int main(){
for(int i=1;i<=8;i++){//逐行输入,更加方便
cin>>a[i];//输入
if(a[i]!="WBWBWBWB"&&a[i]!="BWBWBWBW"){//如果当前行与需要的两个字符串都不相同
puts("NO");//输出
return 0;//直接结束程序
}
}
puts("YES");//每一行都判断完,没有结束程序则合法,输出
return 0;
}