当前位置: 首页 > article >正文

蓝桥Python真题——扫雷

在这里插入图片描述
下面讲讲普通python语法中的IO运用

  1. 输一行字符串包含两个数据,将两个数据提取出来
    n, m = map(int, input().split()
  2. 输入n行m列的二维矩阵数组
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. 遍历结果矩阵的每一行,转换为字符串,并用空格分隔后打印
for row in result:
	print(' '.join(map(str, row)))

代码

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()

全是暴力,主要就是通过判断八个方向的地雷数。
也是因为题目的数据量不大。


http://www.kler.cn/a/613379.html

相关文章:

  • 宝塔SSL申请Let‘s Encrypt提示“验证信息构造失败!{}“
  • 【Linux】进程控制和Shell的简易实现
  • 深入剖析Redis分布式锁:Redlock算法源码解读与实战
  • 【学Rust写CAD】15 定点数实现(fixed.rs)
  • Linux文件目录管理指令详解(下篇)
  • C语言之链表增删查改
  • CSS3学习教程,从入门到精通,CSS3 弹性盒子(Flexbox)布局全面指南(20)
  • 一款超级好用且开源免费的数据可视化工具——Superset
  • 前端技术有哪些
  • 微信小程序:数据拼接方法
  • 运维面试题(十一)
  • 明达网关云平台——开启透明化制造新时代
  • VMware Windows Tools 存在认证绕过漏洞(CVE-2025-22230)
  • Yolo_v8的安装测试
  • AI Agent浪潮下,昇腾与科大讯飞携手开辟AI落地“新航路”
  • Pycharm(七):几个简单案例
  • VectorBT:使用PyTorch+LSTM训练和回测股票模型 进阶二
  • GenBI 中如何引入 LLM 做意图路由,区分查数据还是闲聊
  • Android生态大变革,谷歌调整开源政策,核心开发不再公开
  • MAC环境给docker换源