测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A7708. Crop

编程题 入门

题目描述

有一张高度为 $H$ 像素、宽度为 $W$ 像素的黑白图像。第 $i$ 行(从上往下数)第 $j$ 列(从左往右数)的像素颜色由字符 $C_{i,j}$ 表示,其中 . 表示白色,# 表示黑色。

从该图像的上、下、左、右四条边界开始,依次删除所有像素均为白色的行或列。具体按以下顺序执行操作:

1. 当图像最上方的一行全部为白色时,重复删除最上方的一行;
2. 当图像最下方的一行全部为白色时,重复删除最下方的一行;
3. 当图像最左侧的一列全部为白色时,重复删除最左侧的一列;
4. 当图像最右侧的一列全部为白色时,重复删除最右侧的一列。

输出处理后的图像。

给定的图像中至少包含一个黑色像素。

输入格式

输入从标准输入中按以下格式给出:

> $H$ $W$
> $C_{1,1}C_{1,2}\ldots C_{1,W}$
> $C_{2,1}C_{2,2}\ldots C_{2,W}$
> $\vdots$
> $C_{H,1}C_{H,2}\ldots C_{H,W}$

输出格式

以以下格式输出处理后的图像。
其中,$h$ 和 $w$ 分别表示处理后图像的高度和宽度(单位:像素)。
$c_{i,j}$ 表示第 $i$ 行(从上往下数)第 $j$ 列(从左往右数)处像素的颜色字符;若该像素为白色,则 $c_{i,j}$ 必须为 .;若为黑色,则必须为 #

> $c_{1,1}c_{1,2}\ldots c_{1,w}$
> $c_{2,1}c_{2,2}\ldots c_{2,w}$
> $\vdots$
> $c_{h,1}c_{h,2}\ldots c_{h,w}$

输入输出样例

输入 #1
4 5
.....
..#..
.###.
.....
输出 #1
.#.
###
输入 #2
3 4
#...
....
...#
输出 #2
#...
....
...#
输入 #3
5 6
......
......
...#..
......
......
输出 #3
#

说明/提示

**样例 1 解释:**
你需要从图像的上边缘移除一行,从下边缘移除一行,从左边缘移除一列,从右边缘移除一列。

**样例 2 解释:**
在此图像中,最上方的一行、最下方的一行、最左侧的一列以及最右侧的一列均包含黑色像素。
因此,无需移除任何行或列,应直接输出原始图像。

### 约束条件

* $1 \le H, W \le 50$
* $C_{i,j}$ 为 .#
* 至少存在一个黑色像素。
上一题 去做题 下一题