通过率 53% · 提交 102 · 通过 54
在一个 `M * N` 的网格区域中,小慕需要从起点 `S` 前往终点 `E`。标记为 `X` 的格子是障碍物,不能通行;标记为 `B` 的格子是空地,可以通行。小慕每可以移动到相邻的格子(只能上下左右移动一格)。每次改变移动方向时,需要额外花费 `1` 单位时间(小慕第一次移动时,不需要考虑初始方向,即只需 `1` 单位时间就能到达相邻格子)。请计算小慕从 `S` 到达 `E` 所需的最少时间。
这类题属于华为 OD 机考真题方向中「200分 / 2023B」方向的高频题型,通常考察对「200分 / 2023B」的建模能力与边界条件处理。掌握本题的解题思路后,可举一反三应对同类真题方向,稳步提升机考通过率。
提示:带虚线的词点一下有通俗解释。
第一行为两个数字,表示街区的大小,M 行,N 列,存在1 < = M ∗ N < = 1000,且M、N 不同时为 1
接下来输入 M 行,每行 N 个字母,字母 S 表示士兵所在街区,字母 E 表示敌人所在街区,字母 X 表示障碍,字母 B 表示可以经过的街区。有且仅有 1 个 S 和一个 E 。
输出士兵 S 到达敌人 E 所在的街区时最少需要的时间;当士兵 S 永远无法到达敌人 E 所在的街区时,输出 -1。
示例 1
输入示例
6 6 SBBBBB BXXXXB BBXBBB XBBXXB BXBBXB BBXBEB
输出示例
13
时间限制 1000 ms · 内存限制 128 MB
本平台为独立第三方培训机构,与华为技术有限公司无任何关联;课程的服务内容与权益以购买协议为准,学习效果因个人情况而异。「华为 OD」「华为可信」等仅为对岗位与考试方向的客观描述,相关商标归各自权利人所有。
登录后可查看你在本题的历史提交,以及每次的各用例通过情况。
© 2026 广州慕课网络科技有限公司 · 吴师兄学算法官网 版权所有