题目大意
本题为多组样例测试
给出一个3×33 \times 33×3的矩阵,矩阵仅有三个字符.,X,O所组成,代表两个人在3×33 \times 33×3的矩阵上下棋的棋局,X为先手,O为后手,.为未下棋地块。以任意方向放满三个棋子为结束的标志。
请你判断给出的3×33 \times 33×3的矩阵是否可能会在两者对局当中出现,每组样例给出YES与NO的回答。
题意分析
根据给出的棋盘进行判断是否为合法的棋盘即可。
解题思路
矩阵最大为3×33 \times 33×3,我们可以通过枚举所有的情况来判断棋盘是否为合法的。
首先我们需要理清楚,怎样的棋盘为合法的,怎样的棋盘为非合法的。
* X为先手,O为后手,那么在整个合法棋盘当中X的数量必然大于等于O,并且X下过之后O必然会添上一个,那么在整盘的棋局当中,X的数量只会比O多一个或者相等。
* 任意方向三个格子相同字符为结束,那么在一个合法棋盘当中,不可能出现两个人都获胜的情况。
我们还可以根据第二个条件继续衍生出两种不合法情况。
* 假若X获得胜利,那么此时X的数量必然不与O相等。
* 假若O获得胜利,那么此时O的数量必然不可能比X小1个。
整理出以上条件之后,我们只需要判断X与O之间的数量关系,再根据两者的获胜状态判断数量关系即可得出答案。
时间复杂度解析
本题使用循环对矩阵进行枚举,时间复杂度为O(n2)O(n^2)O(n2)
代码演示