解题思路:
给原矩阵中增加一个padding即可避免判断“需要找几个邻居”的问题(灵感来源于计算机视觉中的Padding操作)
注意事项:
参考代码:
counter = 1 while 1: row, col = map(int, input().split()) if row == col == 0: break padding = ['.' for _ in range(col + 2)] field, mine = [padding, padding], [[0 for _ in range(col + 1)] for _ in range(row + 1)] for i in range(1, row + 1): field.insert(i, ['.'] + list(input()) + ['.']) for j in range(1, row + 1): for k in range(1, col + 1): if field[j][k] == '*': mine[j][k] = '*' else: temp = [field[j + 1][k + 1], field[j - 1][k - 1], field[j + 1][k - 1], field[j - 1][k + 1], field[j + 1][k], field[j - 1][k], field[j][k - 1], field[j][k + 1] ] mine[j][k] = sum(1 for i in temp if i == '*') print(f"Field #{counter}:") counter += 1 for i in range(1, row + 1): print(*mine[i][1:], sep='') print()
0.0分
3 人评分
(格式错误) qq290048663 碰巧告知我吧浏览:678 |
字符串的输入输出处理 (C语言代码)浏览:2055 |
C语言程序设计教程(第三版)课后习题6.9 (C++代码)论pow函数的应用浏览:1079 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:610 |
【亲和数】 (C语言代码)浏览:541 |
【简单计算】 (C语言代码)浏览:642 |
WU-输出九九乘法表 (C++代码)浏览:1853 |
WU-C语言程序设计教程(第三版)课后习题11.12 (C++代码)(想学链表的小伙伴可以看看)浏览:964 |
三角形 (C语言代码)浏览:965 |
IP判断 (C语言描述,蓝桥杯)浏览:1118 |