【新】华为OD机试 - 基站维修工程师 & 找出重复代码(Python)| 运气好,这就是原题

本文介绍了华为OD在线测试中的两道题目,分别是基站维修工程师的最短路径问题和找出代码中的重复部分。对于基站问题,通过输入站点数和距离矩阵,求解最小回路路径。对于重复代码,利用动态规划找最长公共子串。文章提供了Python解题代码及运行结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

华为OD机试:基站维修工程师

题目

小王是一名基站维护工程师,负责某区域的基站维护。
某地方有 n 个基站( 1<n<10 ),已知各基站之间的距离 s( 0<s<500 ),
并且基站 x 到基站 y 的距离,与基站 y 到 基站 x 的距离并不一定会相同。
小王从基站 1 出发,途经每个基站 1 次,然后返回基站 1 ,需要请你为他选择一条距离最短的路。

输入

站点数 n 和各站点之间的距离(均为整数)。
如:

3 {站点数}
0 2 1 {站点1到各站点的路程}
1 0 2 {站点2到各站点的路程}
2 1 0 {站点3到各站点的路程}

输出描述

最短路程的数值

示例一

输入

3
0 2 1
1 0 2
2 1 0

输出

3

解题思路

  • 输入 n,表示城市数量。
  • 输入 n 行,每行 n 个整数,表示城市之间的距离。
  • 在 solve_method 函数中,对于每一个城市(除了第 0 个城市),计算从第 0 个城市到该城市,再从该城市回到第 0 个城市的距离,并记录最短的一条路径。

核心知识点

使用 map 函数处理字符串。

Python 代码实现

bs_num = int(input().strip())
distances = [list(map(int, input().strip().split())
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦想橡皮擦

如有帮助,来瓶可乐

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值