最好的草 计蒜客 Python
题目
题目描述
奶牛 BessieBessieBessie 计划好好享受柔软的春季新草。新草分布在 RRR 行 CCC 列的牧场里。它想计算一下牧场中的草丛数量。
在牧场地图中,每个草丛要么是单个#
,要么是有公共边的相邻两个#
。给定牧场地图,计算有多少个草丛。
例如,考虑如下 555 行 666 列的牧场地图
.#....
..#...
..#..#
...##.
.#....
这个牧场有 555 个草丛:一个在第一行,一个在第二列横跨了二、三行,一个在第三行,一个在第四行横跨了四、五列,最后一个在第五行。
输入格式
第一行包含两个整数 RRR 和 CCC,中间用单个空格隔开。(1≤R,C≤1001≤R,C≤1001≤R,C≤100)
接下来 RRR 行,每行 CCC 个字符,描述牧场地图。字符只有#
或.
两种。
输出格式
输出一个整数,表示草丛数。
样例输入
5 6
.#....
..#...
..#..#
...##.
.#....
样例输出
5
解题
思路分析
- 本题主要用到深度优先搜索(Depth-First-Search)算法
- 首先用二维数组生成牧场地图
- 此处
Python
应注意每行用list
将将字符串分割成字符型列表,因为Python的字符串无法直接修改字符
- 此处
- 遍历牧场,按条件进入深搜(
ls[i][j] == '#'
)- 每次进入次数+1(包括相连的视为一片草)
- 每深搜到一个符合条件的字符,就将其变成一个
.
,然后判断其右侧或下边是否还有相连的#
- 如果有,继续对相连的草地执行第三步操作操作。
dfs代码
def dfs(x, y):ls[x][y] = '.'if x != m - 1 and ls[x + 1][y] == '#':dfs(x + 1, y)if y != n - 1 and ls[x][y + 1] == '#':dfs(x, y + 1)
完整代码实现
ls = []
m, n = map(int, input().split())
for i in range(m):ls.append(list(input()))
c = 0def dfs(x, y):ls[x][y] = '.'if x != m - 1 and ls[x + 1][y] == '#':dfs(x + 1, y)if y != n - 1 and ls[x][y + 1] == '#':dfs(x, y + 1)for i in range(m):for j in range(n):if ls[i][j] == '#':dfs(i, j)c += 1
print(c)
最好的草 计蒜客 Python相关推荐
- 计算二进制补码 计蒜客 Python
题目 题目来源于计蒜客输出二进制补码 题目描述 蒜头君有一个 int 的整数,输出它的 32 位二进制补码. 输入格式 一个整型整数. 输出格式 输出一行,即该整数的补码表示. 样例输入 7 样例输出 ...
- 计蒜客python答案Top50
新手小白入门刷题学习,前50道题目,巩固基础,有些题目的解答并不是最简单而又高效,纯属暴力破解,希望各位大佬多多指教! 计蒜客官网: https://www.jisuanke.com T1001 计算 ...
- 区间内的真素数 计蒜客 Python
题目 题目描述 蒜头君请你帮忙找出正整数 MMM 和 NNN 之间(NNN 不小于 MMM)的所有真素数. 真素数的定义:如果一个正整数 PPP 为素数,且其反序也为素数,那么 PPP 就为真素数. ...
- 计蒜客python刷题笔记
1.计算A+B A,B= map(int, input().split()) C=int(A+B) print(C) 这里面输入必须同时输入两个数.用空格隔开,所以用到了map函数,第一个参数控制格式 ...
- 计蒜客 Python练习
本文为了记录 学习Python3 所写 写的都是 语法训练题 记录自己学习的过程 题目是让你求一个斐波那契数列的第n项 然后我用了一个函数来计算这个东西 1:没有分号 2:各种段开头需要冒号 3 ...
- 坑!计蒜客——乳草的侵占
计蒜客--乳草的侵占(BFS) BFS一直写不会,可能是多加了个队列,写起来不是太容易.不过最近还是稍微入门了BFS,跟DFS差别不太大,还是由三个部分组成--出口.标记.枚举. DFS的主要的思想就 ...
- 计蒜客难题题库之一 泥塑课 python解答
计蒜客挑战难题之一 泥塑课 python解答 题目: 小米是一个幼儿园老师,每学期的泥塑课上,她都会给每个学生发不超过250立方厘米的等量橡皮泥,教大家做泥塑.在上课过程中,她发现每个班都恰好有一个小 ...
- 计蒜客难题题库之二 奇怪的国家 python解答
计蒜客挑战难题之二 奇怪的国家 python解答 题目: 有一个奇怪的国家,里面的国民对于事情的态度永远只有两面.当两个人遇到一起讨论一个事情的时候--两个持赞同观点的人遇到一起后会对这个事情都继续赞 ...
- 计蒜客2020蓝桥杯大学A组模拟赛题解
计蒜客2020蓝桥杯大学A组模拟赛题解 蓝桥杯的话,去年拿了C++组的国二.今年报名了新成立的Python组,不知道能不能摸到国一的鱼 模拟赛链接如下: https://www.jisuanke.co ...
最新文章
- 模拟游客一天的生活与旅游java程序代写源码
- Unix/Linux常用命令及配置
- find命令以及管道的简单使用技巧
- 为什么一个程序申请的内存有限制_为什么要做自己的小程序商城,做一个要多久?...
- 10年前用10万元投资腾讯,现在能实现财务自由吗?
- mysql 配置自动截断_MySql超长自动截断实例详解
- AI实战 | Tensorflow自定义数据集和迁移学习(附代码下载)
- 惊!字节实习生竟干这事到凌晨三点
- python与机器学习(七)下——torchvision预训练模型测试真实图像分类
- oracle日期的sql,Oracle中一些和日期有关的SQL查询
- gcc和g++的区别 (很详细的描述)
- java入门第五步之数据库项目实战
- 配置activity-alias别名,更改app图标和名字
- Make sure that libnvrtc-builtins.so.11.1 is installed correctly.
- 信息终端安全是指办公和生产用计算机,从办公终端安全角度考虑,以下哪个是正确的()...
- 路由器,交换机和猫的区别
- Failed to load project configuration: cannot parse file xxx Message: 前言中不允许有内容。
- 恒讯科技讲解:量子云计算是什么?
- 【3】现代计算机图形学(正交投影,透视投影,MVP变换)
- DeepLab InvalidArgumentError NodeDef mentions attr dilations not in Op name=Conv2D