当前位置: 首页 > article >正文

华为OD机试真题(Java),最远足迹(100%通过+复盘思路)

在这里插入图片描述

一、题目描述

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

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

备注:

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

二、输入描述

字符串,表示记录仪中的数据。

三、输出描述

字符串,表示最远足迹到达的坐标。

如: (10,20)

  • 输入:asdf(7,8)qwertjh45(5,7)fa65jhsdf23fg(6,8)
  • 输出:(7,8)

四、Java算法源码

public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);

    String s = sc.nextLine();
    
    int r = 0;
    int l = 0;

    List<Integer> list = new ArrayList<>();
    List<List<Integer>> lists = new ArrayList<>();

    for (int i = 0; i < s.length(); i++) {
        if (s.charAt(i) == '(') {
            l = i + 1;
        } else if (s.charAt(i) == ')') {
            r = i;
        }
        if (r != 0) {
            String[] ss = s.substring(l, r).split(",");
            int j = Integer.parseInt(ss[0]);
            int w = Integer.parseInt(ss[1]);
            if (j > 0 && j < 1000 && w > 0 && w < 1000 && ss[0].charAt(0) != '0' && ss[1].charAt(0) != '0') {
                list.add(j);
                list.add(w);
                lists.add(list);
                list = new ArrayList<>();
            }
            l = r = 0;
        }
    }

    if (lists.size() == 0) {
        System.out.println("(0,0)");
    } else {
        lists.sort((a, b) -> {
            int ax = a.get(0) * a.get(0) + a.get(1) * a.get(1);
            int bx = b.get(0) * b.get(0) + b.get(1) * b.get(1);
            if (bx >= ax) {
                return 1;
            }
            return -1;
        });

        System.out.println("(" + lists.get(0).get(0) + "," + lists.get(0).get(1) + ")");
    }
}

五、效果展示

在这里插入图片描述


🏆本文收录于,华为OD机试2023(Java)

本专栏包含了最新最全的2023年华为OD机试真题,有详细的分析和Java解答。已帮助1000+同学顺利通过OD机考。专栏会持续更新,每天在线答疑。

在这里插入图片描述


http://www.kler.cn/a/13769.html

相关文章:

  • nginx加tomcat动静分离,负载均衡
  • 看完这篇文章你就彻底懂啦{保姆级讲解}-----(LeetCode刷题59螺旋矩阵II) 2023.4.20
  • 动态规划——最长非降子序列
  • 司空见惯 - 参加VOE问卷调查
  • Nginx之正则表达式、location匹配简介以及rewrite重写
  • TortoiseSVN使用-权限配置
  • 机器思维(个人总结)
  • 【U8+】用友U8+对账不平案例及方法总结
  • 获得将要生成的资源的GUID
  • js 把base64转file文件
  • 基于高德导航的大作业
  • 在更高的起点创业 专访Aqara重庆服务商,探问「经营秘籍」
  • NFC 学习笔记 5 MFRC522读写器2 NDEF
  • 互联网摸鱼日报(2023-04-20)
  • Matlab 相机标定
  • “行泊舱”+出海全面发力,这家ADAS厂商跑出规模化“新速度”
  • deepstream的nvv4l2h264enc硬编码插件讲解,实现rtsp推流,且无延迟
  • 153. 寻找旋转排序数组中的最小值
  • 电子工程有哪些SCI期刊推荐? - 易智编译EaseEditing
  • Python面试题常用函数总结