
下面讲讲普通python语法中的IO运用
- 输一行字符串包含两个数据,将两个数据提取出来
n, m = map(int, input().split()
- 输入n行m列的二维矩阵数组
python
gird = []
for _ in range(n): #n行
row = list(map(int, input().split())) #m列
gird.append(row)
- 声明一个元素都为0的二维数组
result = [[0 for _ in range(m)] for _ in range(n)]
内层是列数,外层是行数。
n行m列 - 遍历结果矩阵的每一行,转换为字符串,并用空格分隔后打印
python
for row in result:
print(' '.join(map(str, row)))
代码
python
def main():
n, m = map(int,input().split())
gird = []
for _ in range(n):
row = list(map(int, input().split()))
gird.append(row)
directions = [
(-1, -1), (-1, 0), (-1, 1),
(0, -1), (0, 1),
(1, -1), (1, 0), (1, 1)
]
result = [[0 for _ in range(m)] for _ in range(n)]
for i in range(n):
for j in range(m):
if gird[i][j] == 1:
result[i][j] = 9
else :
count = 0
for dx, dy in directions:
x = i+dx
y = j+dy
if 0<=x<n and 0<=y<m and gird[x][y]==1:
count += 1
result[i][j] = count
for row in result:
print(' '.join(map(str, row)))
if __name__ =='__main__':
main()
全是暴力,主要就是通过判断八个方向的地雷数。
也是因为题目的数据量不大。