首页 > 试题广场 >

爱丽丝的魔力零件分类

[编程题]爱丽丝的魔力零件分类
  • 热度指数:28 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}在魔法森林的工坊里,爱丽丝正在为制作新的“上海人偶”准备关节零件。每个零件都由 4 个魔力方块(用字符 \texttt{*} 表示)在 n \times n 的网格中拼接而成,其余位置为空白(用字符 \texttt{.} 表示)。

\hspace{15pt}这些零件被保证是以下两种形状之一(可能经过旋转或翻转):
\hspace{23pt}\bullet\,T 型:三个方块排成直线,第四个方块连接在中间方块的侧面;
\hspace{23pt}\bullet\,L 型:三个方块排成直线,第四个方块连接在其中一个末端方块的侧面(这同样包含了通常意义上的 J 型)。

\hspace{15pt}由于零件散落在魔法阵的不同方位,爱丽丝无法直观地分辨它们。请根据给出的网格布局,判断该零件究竟是 T 型还是 L 型。

输入描述:
\hspace{15pt}每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1\leqq T\leqq 100\right) 代表数据组数,每组测试数据描述如下:

\hspace{15pt}第一行输入一个整数 n\left(4 \leqq n \leqq 20\right),表示网格的大小。
\hspace{15pt}此后 n 行,第 i 行输入一个长度为 n、仅由 \texttt{.}\texttt{*} 组成的字符串 s_i,表示网格的第 i 行。
\hspace{15pt}除此之外,保证网格中恰好有 4\texttt{*} 字符,且它们连接成(上下左右四连通连接)一个合法的 T 型或 L 型。


输出描述:
\hspace{15pt}对于每一组测试数据,新起一行。如果零件是 T 型,输出字符 \texttt{T};如果是 L 型,输出字符 \texttt{L}
示例1

输入

3
5
.....
.....
.***.
..*..
.....
5
.....
..*..
..*..
.**..
.....
6
......
..*...
.**...
..*...
......
......

输出

T
L
T

说明

\hspace{15pt}对于第一组测试数据,构成一个标准开口向下的 T 型。

\hspace{15pt}对于第二组测试数据,构成一个类似 J 形状的零件,根据定义属于 L 型。

\hspace{15pt}对于第三组测试数据,构成一个顺时针旋转了 90 度的 T 型。

这道题你会答吗?花几分钟告诉大家答案吧!