AT_abc075_b [ABC075B] Minesweeper

题目描述

给定一个 $H \times W$ 的网格。 在输入中,所有的格子都用字符表示,`.` 表示空格,`#` 表示炸弹格。 网格由 $H$ 个字符串 $S_1,\ldots,S_H$ 表示。 字符串 $S_i$ 的第 $j$ 个字符对应网格中从上到下第 $i$ 行、从左到右第 $j$ 列的格子。$(1 \leq i \leq H, 1 \leq j \leq W)$ “イルカ”对每个空格的上下左右以及斜对角共 $8$ 个方向上相邻的格子中有多少个炸弹格感到好奇。 因此,他决定将每个空格对应的 `.` 替换为该空格周围 $8$ 个方向上相邻格子中炸弹格的个数。 请输出按照上述规则替换后的网格。

输入格式

输入以如下格式从标准输入给出。 > $H$ $W$ > $S_1$ > $\vdots$ > $S_H$

输出格式

请输出替换后的网格,共 $H$ 行字符串。 第 $i$ 行输出的字符串 $T_i$ 长度为 $W$,$T_i$ 的第 $j$ 个字符对应替换后网格中从上到下第 $i$ 行、从左到右第 $j$ 列的格子。$(1 \leq i \leq H, 1 \leq j \leq W)$

说明/提示

### 限制条件 - $1 \leq H, W \leq 50$ - $S_i$ 是仅由 `#` 和 `.` 组成的长度为 $W$ 的字符串 ### 样例解释 1 以从上到下第 $1$ 行、从左到右第 $1$ 列的空格为例。该空格周围 $8$ 个格子中只有从上到下第 $2$ 行、从左到右第 $2$ 列的格子是炸弹格。因此,从上到下第 $1$ 行、从左到右第 $1$ 列的空格被替换成了 `1`。 ### 样例解释 2 有可能不存在空格。 由 ChatGPT 4.1 翻译