java最远足迹坐标点搜索

java最远足迹坐标点搜索


描述

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

1.仪器记录坐标时,坐标的数据格式为(x,y),如(1,2)、(100,200),其中0<x<1000,0<y<1000。同时存在非法坐标,如(01,1)、(1.01),(0.100)属于非法坐标。
2.设定探险队总部的坐标为(0,0),某位置相对总部的距离为:x“x+y"y。
3.若两个座标的相对总部的距离相同,则第一次到达的坐标为最远的足迹。
4.若记录仪中的坐标都不合法,输出总部坐标(0.0)。

备注:
不需要考虑双层括号嵌套的情况,比如sfsdfsd((1,2))。

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

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

用例:
输入:
ferg(3,10)a13fdsf3(3,4)f2r3rfasf(5,10)f2r3rfasf(10,5)

输出:
(5,10)

java实现

package com.des.data.test;

import java.util.HashMap;

public class FarthestFootprint {

    public static void main(String[] args) {
        String str = "ferg(3,10)a13fdsf3(3,4)f2r3rfasf(5,10)f2r3rfasf(10,5)";
        System.out.println(farthest(str));
    }

    public static String farthest(String str) {
        int f = 0;
        HashMap<Integer, String> resMap = new HashMap<>();
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            StringBuffer strl = new StringBuffer();
            if (c == '(') {
                strl.append(c);
                StringBuffer strLen = new StringBuffer();
                for (int j = i + 1; j < str.length(); j++) {
                    char d = str.charAt(j);
                    strl.append(d);
                    if (d == ')') {
                        break;
                    }
                    strLen.append(d);
                }
                String[] trslen = strLen.toString().split(",");
                String s = trslen[0];
                String e = trslen[1];
                int si = Integer.parseInt(s);
                int el = Integer.parseInt(e);
                if (!s.startsWith("0") && si > 0 && el < 1000 && !e.startsWith("0")) {
                    int resl = si * si + el * el;
                    if (resl > f) {//这一步可以找到相同距离下最先搜索到的那个点
                        f = resl;
                        resMap.put(f,strl.toString());
                    }
                }
            }
        }
        return resMap.get(f);
    }
}
华为开发Java项目,OD Java,已经在全球范围内留下了深远的足迹。作为一款支持大规模分布式计算的框架,OD Java在云计算、大数据、物联网等领域得到广泛应用。 首先,在云计算领域,OD Java提供了强大的分布式计算能力,使得华为云在构建和部署大规模分布式应用方面具备了强大的竞争力。OD Java支持弹性伸缩和故障恢复,可以自动适应不同的负载情况,并且具备高可用性和容错能力。 其次,在大数据领域,OD Java在华为的OceanBase数据库系统中发挥了重要作用。OD Java通过提供分布式计算框架,为海量数据的存储和处理提供了高效和可靠的解决方案。OceanBase数据库系统基于OD Java实现了分布式事务、分布式查询和分布式存储等功能,为用户提供了优秀的大数据处理能力。 此外,OD Java还在物联网领域中有广泛应用。物联网中的设备和传感器大量生成的数据需要进行高效的处理和分析,而OD Java提供了适用于物联网场景的分布式计算能力。使用OD Java,华为可以为物联网应用提供可靠的数据获取、存储和分析支持,推动物联网技术的发展。 总之,华为OD Java已经在全球范围内展现了其强大的分布式计算能力,并在云计算、大数据和物联网等领域发挥了重要作用。随着技术的不断发展,相信OD Java将继续创造更多的价值和影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值