华为OD机试之最远足迹(Java源码)

news/2024/10/20 3:20:40/

最远足迹

题目描述

某探险队负责对地下洞穴进行探险。探险队成员在进行探险任务时,随身携带的记录器会不定期地记录自身的坐标,但在记录的间隙中也会记录其他数据。探索工作结束后,探险队需要获取到某成员在探险过程中相对于探险队总部的最远的足迹位置。
仪器记录坐标时,坐标的数据格式为(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))。

输入描述

字符串,表示记录仪中的数据。
如:ferga13fdsf3(100,200)f2r3rfasf(300,400)

输出描述

字符串,表示最远足迹到达的坐标。如: (300,400)

输入输出说明
ferg(3,10)a13fdsf3(3,4)f2r3rfasf(5,10)(5,10)记录仪中的合法坐标有3个: (3,10), (3,4), (5,10),其中(5,10)是相距总部最远的坐标, 输出(5,10)。
asfefaweawfaw(0,1)fe(0,0)记录仪中的坐标都不合法,输出总部坐标(0,0)

源码和解析
解析:

该题解决的核心就在从字符串中取出合法的坐标 使用合适的正则匹配可以使得问题变得简单。

示例代码:

import java.util.regex.Matcher;
import java.util.regex.Pattern;public class T20 {public static void main(String[] args) {String input = "ferg(03,100)a13fdsf3(3,04)f2r3rfasf(5,10)";// String input="asfefaweawfaw(0,1)fe";// String input="ferg(3,10)a13fdsf3(6,10)f2r3rfasf(5,10)";StringBuilder inputBuilder = new StringBuilder(input);// (3,10)√ (03,10) (1,01),(0,100) ×==>x,y坐标都不能0开头String reg = "\\([1-9]{1}[0-9]{0,2},[1-9]{1}[0-9]{0,2}\\)";Pattern pattern = Pattern.compile(reg);Matcher matcher = pattern.matcher(inputBuilder.toString());String objPosition = "(0,0)";int max = 0;while (matcher.find()) {String positionStr = input.substring(matcher.start(), matcher.end());inputBuilder.setCharAt(matcher.start(), '_');// 破坏原始结构中第一个满足的// 接着找第其他的...matcher = pattern.matcher(inputBuilder.toString());// System.out.println(positionStr);String xy[] = positionStr.replace("(", "").replace(")", "").split(",");int x = Integer.parseInt(xy[0]);int y = Integer.parseInt(xy[1]);if (x * x + y * y > max) {max = x * x + y * y;objPosition = positionStr;}}System.out.println(objPosition);}
}

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

相关文章

linux centos 安装JDK、tomcat、nginx教程记录

一、安装jdk 1、查看linux系统的jdk位数&#xff08;64/32位&#xff09; 查看本机位数命令&#xff1a; sudo uname --m 2、进入jdk下载官网 Java Downloads | Oracle 现在默认是最新的jdk20 以为我是之前的项目&#xff0c;使用的是jdk1.8_181版本&#xff0c;所以我需要…

apache poi clonesheet方法生成的xls格式的excel打开报:“文件错误:数据可能丢失。”

问题描述 最近在用apache poi生成xls格式的excel的时候&#xff0c;其中有个环节是循环复制第二页模板&#xff0c;然后依次插入需要的数据&#xff0c;之前用3.7版本一直没问题&#xff0c;最近发现打开后&#xff0c;报如下错误 一开始我以为是数据格式问题&#xff0c;然后…

如何在华为OD机试中获得满分?Java实现【打印文件】一文详解!

✅创作者&#xff1a;陈书予 &#x1f389;个人主页&#xff1a;陈书予的个人主页 &#x1f341;陈书予的个人社区&#xff0c;欢迎你的加入: 陈书予的社区 &#x1f31f;专栏地址: Java华为OD机试真题&#xff08;2022&2023) 文章目录 1. 题目描述2. 输入描述3. 输出描述…

【day 09】vue的过渡与动画

Vue 的过渡与动画 基础的过渡 案例 <!-- 第一步 包一个transition标签 --><transition><Song id"song" v-if"bool"></Song></transition>/* 希望组件节点 离开的时候 有过渡效果离开的起点 离开的终点*/.v-leave{/* 离开…

Maven概念及搭建

1.为什么我们要学习 maven? maven 还未出世的时候&#xff0c;我们有很多痛苦的经历 。 痛点 1&#xff1a; jar 包难以寻找 痛点 2&#xff1a; jar 包依赖的问题 痛点 3&#xff1a; jar 不方便管理 痛点 4&#xff1a;项目编译 2.Maven 简介 Maven 是 Apache 软件基金…

SpringBoot统一功能处理的三个常见实例

我们的统一功能处理肯定是通过Spring拦截器处理的撒 Spring拦截器 截器的实现分为以下两个步骤&#xff1a; 1. 创建⾃定义拦截器&#xff0c;实现 HandlerInterceptor 接⼝的 preHandle&#xff08;执⾏具体⽅法之前的预处理&#xff09;⽅ 法。 2. 将⾃定义拦截器加⼊ W…

[算法前沿]--017-中文大模型ChatGLM微调:P-Tuning,deepspeed,LoRA<中>

文章目录 1. ChatGLM模型介绍2. 基于 P-Tuningv2的高效参数微调方法2.1 环境配置2.3 P-TuningV2 教程2.3.1 训练2.3.1.1 P-Tuning v22.3.1.2 Finetune2.3.1.3 LoRA2.3.2 推理2.3.2.1 示例12.3.2.2 示例22.3.3 评估结果1. ChatGLM模型介绍 ChatGLM-6B 是一个开源的、支持中英双语…

【历史上的今天】5 月 26 日:美国首个计算机软件程序专利;苹果市值首次超越微软;Wiki 的发明者出生

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2023 年 5 月 26 日&#xff0c;在 1995 年的今天&#xff0c;微软公司首席执行官比尔盖茨发表了一番讲话&#xff0c;他认为自己的公司在估计互联网的影响和普及方面错…