华为OD2025A卷 - 洞穴探险(200分)
华为OD2025年3月16号切换正式机考题库为2025A卷
题目描述
某探险队负责对地下洞穴进行探险。探险队成员在进行探险任务时,随身携带的记录器会不定期地记录自身的坐标,但在记录的时隙中也会记录其他数据。探索工作结束后,探险队需要获取到其成员在探险过程中相对于探险队总部的最近的足迹位置。
仪器记录坐标时,坐标的数据格式为(x,y),如(1,2)、(100,200),其中0<x<1000,0<y<1000。同时存在非法坐标,如(01,1)、(1,01)、(0,100)属于非法坐标。
设定探险队总部的坐标为(0,0),某位置相对总部的距离为:xx+yy。
若两个坐标的相对总部的距离相同,则第一次到达的坐标为最远的足迹。
若记录仪中的坐标都不合法,输出总部坐标 (0,0) 。
备注:
不需要考虑双层括号嵌套的情况,比如sfsdfsd((1,2))。
输入描述
字符串,表示记录仪中的数据。
如:derga13fdsf3(100,200)f2r3rfasf(300,400)
输出描述
字符串,表示最远足迹的坐标。
如:(300,400)
用例1
输入
ferg(3,10)a13fdsf3(3,4)f2r3rfasf(5,10)
输出
(5,10)
说明
字符串包含三个坐标 (3,10), (3,4), (5,10)
计算距离:(3,10) = 109,(3,4) = 25,(5,10) = 125
最远的是 (5,10),距离为 125
用例2
输入
asfefaweawfaw(0,1)fe
输出
(0,0)
说明
坐标 (0,1) 不合法,因为 x=0 不满足 0<x<1000
没有合法坐标,所以输出 (0,0)
题解
思路:正则表达式
练习题
- 通过正则表达式匹配出输入中的字符串。如果不存在直接输出
(0,0)
- 检查匹配出的坐标字符串是否符合题目描述要求。
- 在满足要求的坐标中找出
(x,y)
计算x*x +y *y
值最大的坐标作为结果。
代码实现
合集:
华为OD机考真题目录
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 使用TypeScript开发微信小程序(云开发)-入门篇
· 没几个人需要了解的JDK知识,我却花了3天时间研究
· C#高性能开发之类型系统:从 C# 7.0 到 C# 14 的类型系统演进全景
· 管理100个小程序-很难吗
· 在SqlSugar的开发框架中增加对低代码EAV模型(实体-属性-值)的WebAPI实现支持