华为OD机试 - 最大相连男生数(Python)| 真题+思路+代码
最大相连男生数
题目
学校组织活动,将学生排成一个矩形方阵。
请在矩形方阵中找到最大的位置相连的男生数量。
这个相连位置在一个直线上,方向可以是水平的、垂直的、成对角线的或者反对角线的。
注:学生个数不会超过 10000。
输入
输入的第一行为矩阵的行数和列数,接下来的 n 行为矩阵元素,元素间用 ,
分隔。
输出描述
输出一个整数,表示矩阵中最长的位置相连的男生个数。
示例一
输入
3,4
F,M,M,F
F,M,M,F
F,F,F,M
输出
3
解题思路
solve_method()
函数中,通过两层循环遍历每个位置,再通过循环对每个位置的四个方向调用 find()
函数;
find 函数中,通过 while 循环搜索该位置与下一个位置是否是 “M”,如果是,计数器 +1;如果不是,将 max_len 更新为计数器的最大值并重置计数器为 0;
核心知识点
重点是理解题意,解法不难。