SP4413 GEM - Gem
题目描述
给你一个 8×8 的棋盘。在每个格子里,可能放有一个带颜色的宝石,也可能是空的。不同颜色的宝石用不同的数字表示。保证任意一行或一列中不会有超过两个相同颜色的宝石相连。
```
........
........
........
........
........
..43366.
..121556
44212335
```
你可以交换相邻的两个格子的宝石(上下左右相邻,不包括对角线),也可以交换一个宝石和一个空格。
```
........
........
........
........
........
..43366.
..111556
44222335
```
如果交换后,某一行或某一列中出现三个或更多连续相同颜色的宝石,这些宝石会被立刻移除。注意,一个宝石可能会同时在它的行和列中都符合移除的条件。请参考示例了解详情。
```
........
........
........
........
........
..43366.
.....556
44...335
```
宝石被移除后,如果某个宝石在它的下方没有其他宝石,它会下落到最底部或另一个宝石之上。
```
........
........
........
........
........
.....66.
.....556
44433335
```
在所有的宝石下落完毕后,重复这个过程,直到再也无法移除宝石为止:如果有任何一行或一列中超过两个连续相同颜色的宝石,它们会再次被移除,相应的宝石会再下落。
```
........
........
........
........
........
.....66.
.....556
.......5
........
........
........
........
........
........
.....666
.....555
........
........
........
........
........
........
........
........
```
你的任务是判断,给定棋盘的初始状态下,是否可以通过一次交换,使得最终所有宝石都被移除。
输入格式
输入包含多个测试用例。每个测试用例由八行组成,每行包含八个字符。用 `.` 表示空格子,数字 \( k \) 表示颜色宝石 \( 1 \leq k \leq 9 \)。
两个测试用例之间以空行分隔。
输入以一行仅包含数字 0 的行结束。
输出格式
对于每个测试用例,如果可以通过一次交换使所有的宝石都被移除,输出 `Yes`;否则输出 `No`。
**本翻译由 AI 自动生成**