蓝桥Python真题——扫雷

下面讲讲普通python语法中的IO运用

  1. 输一行字符串包含两个数据,将两个数据提取出来
    n, m = map(int, input().split()
  2. 输入n行m列的二维矩阵数组
python 复制代码
gird = []
for _ in range(n): #n行
	row = list(map(int, input().split())) #m列
	gird.append(row)
  1. 声明一个元素都为0的二维数组
    result = [[0 for _ in range(m)] for _ in range(n)]
    内层是列数,外层是行数。
    n行m列
  2. 遍历结果矩阵的每一行,转换为字符串,并用空格分隔后打印
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()

全是暴力,主要就是通过判断八个方向的地雷数。

也是因为题目的数据量不大。

相关推荐
喵了几个咪4 分钟前
GoWind CMS 拆解:在 Go 里给 TipTap 搭一套 Yjs 协同后端
开发语言·后端·golang
程序员清风21 分钟前
数据处理脚本工程化:日志、配置、命令行与测试
服务器·开发语言·数据库
文丑颜不良啊1 小时前
LeetCode876~900题目解析
java·leetcode
aloha_7891 小时前
Java 基础、集合、异常与 JUnit 5 速查
java·junit·sqlserver
在世修行2 小时前
智学文枢:页面切换与跨页数据预填
python·桌面应用·signal·1024程序员节·pyside·跨页跳转·状态预填
知守观2 小时前
设计模式实战:从真实老项目中看标准模板方法与工厂的落地
java·spring·设计模式
2601_962885722 小时前
如何用 Python 把 K 线重采样成任意周期?
开发语言·python
独隅2 小时前
Claude API 实战教程:从入门到完整项目
android·java·数据库·claude·claude code
打工仔折腾 AI2 小时前
在 Ubuntu ARM64 部署 Q1 V3.0 MuJoCo 模型:加载、单步推理与执行器响应解析
linux·运维·人工智能·python·深度学习·ubuntu·性能优化
Wang's Blog2 小时前
Java 项目实战: 交友项目 - 圈子功能实现:总结
java·开发语言·交友