【华为机试】2023年真题B卷(python)-洞穴探险

news/2024/10/26 15:22:52/

一、题目

题目描述:

某探险队负责对地下洞穴进行探险。探险队成员在进行探险任务时,随身携带的记录器会不定期地记录自身的坐标,但在记录的间隙中也会记录其他数据。探索工作结束后,探险队需要获取到某成员在探险过程中相对于探险队总部的最远的足迹位置。
仪器记录坐标时,坐标的数据格式为(x,y),如(1,2)、(100,200),其中0<x<1000,0<y<1000。同时存在非法坐标,如(01,1)、(1,01),(0,100)属于非法坐标。设定探险队总部的坐标为(0,0),某位置相对总部的距离为:x*x+y*y。若两个座标的相对总部的距离相同,则第一次到达的坐标为最远的足迹。若记录仪中的坐标都不合法,输出总部坐标(0,0)。
备注:
不需要考虑双层括号嵌套的情况,比如sfsdfsd((1,2))。

二、输入输出

输入描述:
字符串,表示记录仪中的数据。
如:ferga13fdsf3(100,200)f2r3rfasf(300,400)
输出描述:
字符串,表示最远足迹到达的坐标。
如:(300,400)

三、示例

示例1 
输入输出示例仅供调试,后台判题数据一般不包含示例
输入:
ferg(3,10)a13fdsf3(3,4)f2r3rfasf(5,10)
输出:
(5,10)
说明
记录仪中的合法坐标有3个: (3,10), (3,4), (5,10),其中(5,10)是相距总部最远的坐标, 输出(5,10)。
示例2 

输入输出示例仅供调试,后台判题数据一般不包含示例
输入
asfefaweawfaw(01,1)fe
输出
(0,0)
说明
记录仪中的坐标都不合法,输出总部坐标(0,0)。

四、要求

时间限制:C/C++ 1秒,其他语言 2秒
空间限制:C/C++262144K,其他语言524288K
64bit IO Format:%lld

五、解题思路

  1. 首先,我们需要从输入的字符串中提取出合法的坐标数据。
  2. 对于每个合法的坐标,我们可以计算其相对于总部的距离,并记录最远距离和对应的坐标。
  3. 最后,输出记录的最远距离对应的坐标。

六、参考代码 

# -*- coding: utf-8 -*-
'''
@File    :   2023-B-洞穴探险.py
@Time    :   2023/12/15 14:24:22
@Author  :   mgc 
@Version :   1.0
@Desc    :   None
'''import redef extract_coordinates(data):pattern = r'\((\d{0,3}),(\d{0,3})\)'  # 匹配坐标的正则表达式matches = re.findall(pattern, data)  # 提取所有的坐标return [(int(x), int(y)) for x, y in matches if (not x.startswith("0") and not y.startswith("0"))]  # 过滤掉如(01,1)、(1,01)这样的非法坐标并返回def find_farthest_coordinate(data):coordinates = extract_coordinates(data)  # 提取合法的坐标max_distance = 0farthest_coordinate = (0, 0)for coordinate in coordinates:if (0<coordinate[0]<1000) and (0<coordinate[1]<1000): distance = coordinate[0] ** 2 + coordinate[1] ** 2  # 计算相对总部的距离else:continueif distance > max_distance:max_distance = distancefarthest_coordinate = coordinatereturn farthest_coordinate# 用户输入
data = input()
result = find_farthest_coordinate(data)
print(result)

http://www.ppmy.cn/news/1273276.html

相关文章

2023.12.16 关于 分布式系统 基本介绍

目录 单机架构 服务器负载过高问题 解决方法 分布式系统 引入更多的服务器节点 负载均衡 数据库读写分离 引入缓存 数据库分库分表 引入微服务 基本概念 应用&#xff08;Application&#xff09;/ 系统&#xff08;System&#xff09; 模块&#xff08;Modul…

echarts地图的常见用法:基本使用、区域颜色分级、水波动画、区域轮播、给地图添加背景图片和图标、3d地图、飞线图

前言 最近几天用echarts做中国地图&#xff0c;就把以前写的demo&#xff1a;在vue中实现中国地图 拿来用&#xff0c;结果到项目里直接报错了&#xff0c;后来发现是因为版本的问题&#xff0c;没办法只能从头进行踩坑了。以下内容基于vue3 和 echarts 5.32 基本使用 获取地…

第八章 SpringCloud Alibaba 实现Sentinel规则配置和Feign整合

流控规则 流量控制&#xff0c;其原理是监控应用流量的QPS(每秒查询率) 或并发线程数等指标&#xff0c;当达到指定的阈值时 对流量进行控制&#xff0c;以避免被瞬时的流量高峰冲垮&#xff0c;从而保障应用的高可用性。 第1步: 点击簇点链路&#xff0c;我们就可以看到访问过…

用户行为分析-小数据集

林子雨——用户行为分析 本篇文章主要分享一下自己跟着这个教程做的时候踩的坑,这个版本我用的是ubantu22, 之后会更新一篇ubantu16踩的坑 原网址&#xff1a; 用户行为分析 我的ubantu映像文件和jar包: ubantu映像 jar包 我用的是22&#xff0c;16&#xff0c;18也用过&am…

产品入门第二讲:Axure产品元件库的使用

&#x1f4da;&#x1f4da; &#x1f3c5;我是默&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; ​​​​ &#x1f31f;在这里&#xff0c;我要推荐给大家我的专栏《Axure》。&#x1f3af;&#x1f3af; &#x1f680;无论你是编程小白&#xff0c;还是…

Pod控制器详解【五】

文章目录 5. Pod控制器详解5.1 Pod控制器介绍5.2 ReplicaSet(RS)5.3 Deployment(Deploy)5.4 Horizontal Pod Autoscaler(HPA)5.5 DaemonSet(DS)5.6 Job5.7 CronJob(CJ) 5. Pod控制器详解 5.1 Pod控制器介绍 Pod是kubernetes的最小管理单元&#xff0c;在kubernetes中&#xf…

【Python基础】迭代器

文章目录 [toc]什么是迭代可迭代对象判断数据类型是否是可迭代类型 迭代器对可迭代对象进行迭代的本质获取可迭代对象的迭代器通过迭代器获取数据StopIteration异常 自定义迭代器__iter__()方法__next__()方法判断数据类型是否是可迭代类型自定义迭代器案例分离模式整合模式 fo…

RabbitMQ手动应答与持久化

1.SleepUtil线程睡眠工具类 package com.hong.utils;/*** Description: 线程睡眠工具类* Author: hong* Date: 2023-12-16 23:10* Version: 1.0**/ public class SleepUtil {public static void sleep(int second) {try {Thread.sleep(1000*second);} catch (InterruptedExcep…