华为OD机试 - 热点网站统计 - 逻辑分析(Java 2023 B卷 100分)

news2024/12/29 8:51:01

在这里插入图片描述

目录

    • 专栏导读
    • 一、题目描述
    • 二、输入描述
    • 三、输出描述
    • 四、解题思路
    • 五、Java算法源码
    • 六、效果展示
      • 1、输入
      • 2、输出

华为OD机试 2023B卷题库疯狂收录中,刷题点这里

专栏导读

本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

一、题目描述

企业路由器的统计页面,有一个功能需要动态统计公司访问最多的网页URLtopN。请设计一个算法,可以高效动态统计TopN的页面。

二、输入描述

每一行都是一个URL或一个数字,如果是URL,代表一段时间内的网页访问; 如果是一个数字N,代表本次需要输出的TopN个URL。

输入约束:

1、总访问网页数量小于5000个,单网页访问次数小于65535次:

2、网页URL仅由字母,数字和点分隔符组成,且长度小于等于127字节:

3、数字是正整数,小于等于10且小于当前总访问网页数;

三、输出描述

每行输入要对应一行输出,输出按访问次数排序的前N个URL,用逗号分隔。

输出要求:

  1. 每次输出要统计之前所有输入,不仅是本次输入;
  2. 如果有访问次数相等的URL,按URL的字符串字典序升序排列,输出排序靠前的URL;

四、解题思路

  1. 判断字符串是否是整数;
    • 如果不是整形,则是网址,则将其加入map中,key是网址,value是该网址个数
    • 如果是整形,将map放入list中,并按照网址个数value降序排序;
  2. 获取前N个网址
  3. 获取map中的key,并进行逗号分隔输出;

五、Java算法源码

package com.guor.od;

import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;

public class OdTest {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextLine()) {
            String input = sc.nextLine();
            // 判断字符串是否是整数
            if (isNumeric(input)) {
                Integer num = Integer.parseInt(input);
                List<Map.Entry<String, Integer>> mapList = new ArrayList<>(map.entrySet());
                // 根据网址的个数降序排序
                mapList.sort((o1, o2) -> {
                    if (o1.getValue() != o2.getValue()) {
                        return o2.getValue() - o1.getValue();
                    } else {
                        return o1.getKey().compareTo(o2.getKey());
                    }
                });

                // 获取前N个网址
                List<Map.Entry<String, Integer>> subList = mapList.subList(0, num);
                // 获取map中的key,并进行逗号分隔输出
                String keys = subList.stream().map(Map.Entry::getKey).collect(Collectors.joining(","));
                System.out.println(keys);
            } else {
                // 如果是网址,则将其加入map中,key是网址,value是该网址个数
                map.put(input, map.getOrDefault(input, 0) + 1);
            }
        }
    }

    /**
     * 判断字符串是否是整数
     */
    public static boolean isNumeric(String str) {
        Pattern pattern = Pattern.compile("[0-9]*");
        Matcher isNum = pattern.matcher(str);
        return isNum.matches();
    }
}

六、效果展示

1、输入

news.qq.com
news.sina.com.cn
news.qq.com
news.qq.com
game.163.com
game.163.com
www.huawei.com
www.cctv.com
3

2、输出

news.qq.com,game.163.com,news.sina.com.cn

在这里插入图片描述


🏆下一篇:华为OD机试 - 荒岛求生 - 栈Stack(Java 2023 B卷 100分)

🏆本文收录于,华为OD机试(JAVA)真题(A卷+B卷)

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1100616.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】缺省参数与函数重载

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 前言 本篇文章博主将带你学习缺省参数与函数重载&…

京东API接口带你了解京东工业|电商及供应链服务

京东工业赴港上市&#xff0c;带着非常优秀的成绩。 招股书显示&#xff0c;2022年实现交易额223亿元&#xff0c;营收141亿元&#xff0c;调整后净利润7亿元。短短六年时间&#xff0c;已成为中国工业供应链技术与服务市场领导者。京东API接口接入调取京东商品详情&#xff0c…

零基础怎么样才能学好 Python?Python 入门必看

Python 目前可以用一个字来描述那就是 “火”&#xff0c;问题来了&#xff0c;这么火的语言零基础小白到底该怎样学习 Python&#xff1f; 首先&#xff0c;从基础开始学习&#xff0c;切勿毛躁。 刚开始学习 Python 的时候&#xff0c;我们可能会有些毛躁总觉得这些知识太简…

南美委内瑞拉市场最全分析开发攻略,收藏一篇就够了

委内瑞拉是一个常被国内跨境商家忽略但具有巨大潜力的市场。尽管委内瑞拉的网络基础建设水平较低&#xff0c;网络速度受限&#xff0c;但委内瑞拉网络渗透率较佳。因为长期受美国制裁&#xff0c;所以经济发展水平较低&#xff0c;很多产品依赖进口&#xff0c;市场潜力还是非…

睿趣科技:抖音短视频带货素材哪里找

随着抖音短视频的火爆&#xff0c;越来越多的商家开始利用抖音进行产品推广和销售。而制作一部成功的抖音短视频&#xff0c;除了需要有吸引人的内容和创意外&#xff0c;还需要有高质量的素材。那么&#xff0c;抖音短视频带货素材应该去哪里找呢? 首先&#xff0c;我们可以从…

将excel表中的英文自动翻译成中文

某乎上垃圾内容太多&#xff0c;要么是复制粘贴的youdao翻译&#xff0c;要么是某网络函数库的软广。这里提供office的原生方法&#xff0c;需要用到word&#xff08;不适合数据量太大的情况&#xff09; 方法 复制需要翻译的列到word选择审阅 -> 翻译 -> 翻译文档 -&g…

掌控安全Update.jsp SQL注入

0x01 漏洞介绍 亿赛通电子文档安全管理系统是国内最早基于文件过滤驱动技术的文档加解密产品之一&#xff0c;保护范围涵盖终端电脑&#xff08;Windows、Mac、Linux系统平台&#xff09;、智能终端&#xff08;Android、IOS&#xff09;及各类应用系统&#xff08;OA、知识管理…

【精华系列】跟着Token学习数据挖掘-1

Hello&#xff0c;大家好&#xff01;这里是Token的博客&#xff0c;欢迎您的到来 今天整理的笔记时数据挖掘方向的基础入门&#xff0c;了解数据分析使用的一些基础的Python库&#xff0c;为后面的数据处理做好准备 01-数据分析工具介绍 准备&#xff1a;Python的安装、平台搭…

PTE-精听学习(一)

目录 SST SST每一题都是单独计时 MMA 切换题目的时候&#xff0c;总是会迷茫 deduct 出现关键词之后&#xff0c;才开始精听 没有人管你 &#xff0c;绝对是要为后方留出更多的时间 &#xff0c;选多一个错的&#xff0c;要倒扣分 特征 1.paraphrase 2.循序出现 …

MySQLJDBC入门与SQL注入

MySQL-JDBC入门与SQL注入 一.JDBC概述 1.JDBC 在Java语言中提供对数据库访问的支持Sun公司于1996年提供了一套访问数据库的标准Java类库JDBCJDBC的全称是Java数据库连接(Java Database Connectivity)它是一套用于执行 SQL语句的Java API应用程序可通过这套API连接到关系数据…

Python中的List

一、List(列表) 1、什么是 List (列表) List (列表)是 Python 内置的一种数据类型。 它是一种有序的集合,可以随时添加和删除其中的元素。 那为什么要有 List (列表)呢? 我们用一个例子来说明。 现在有一个团队要出去玩,要先报名。如果用我们之前学过的知识,那…

太强了!三种方案优化 2000w 数据大表!

目录 评估表数据体量 表容量&#xff1a; 磁盘空间 实例容量 出现问题的原因 如何解决单表数据量太大&#xff0c;查询变慢的问题 方案一&#xff1a;数据表分区 方案二&#xff1a;数据库分表 水平分表 垂直分表 1.取模方案&#xff1a; 2.range 范围方案 3.hash…

儿童口腔卫生:建立健康微笑的基石

引言 儿童口腔卫生是维护健康的关键部分&#xff0c;它不仅影响口腔健康&#xff0c;还对全身健康产生必然影响。本文将探讨一些儿童口腔卫生的重要性以及儿童的关键注意事项&#xff0c;以帮助家长和监护人确保儿童拥有健康的口腔。 第一部分&#xff1a;儿童口腔卫生的重要性…

Hudi第四章:集成Hive

系列文章目录 Hudi第一章&#xff1a;编译安装 Hudi第二章&#xff1a;集成Spark Hudi第二章&#xff1a;集成Spark(二) Hudi第三章&#xff1a;集成Flink Hudi第四章&#xff1a;集成Hive 文章目录 系列文章目录前言一、环境准备1.拷贝jar包 二、Flink集成hive1.配置模版2.案…

优雅而高效的JavaScript——Proxy 和 Reflect

&#x1f914;博主&#xff1a;小猫娃来啦 文章核心&#xff1a;优雅而高效的JavaScript——Proxy 和 Reflect 文章目录 Proxy 和 Reflect是什么Proxy创建 Proxy 对象拦截器方法拦截器示例&#xff1a;属性拦截拦截器示例&#xff1a;方法拦截 ReflectReflect 的静态方法Reflec…

ORACLE内存结构

内存体系结构 数据库由磁盘文件构成&#xff0c;当数据库启动时&#xff0c;相关实例将被启动&#xff0c;而实例由内存结构和进程组成。数据库及其运行的程序存放在分配给内存的不同结构当中。我们只讨论单实例的内存体系结构。内存跟磁盘空间分配一样&#xff0c;一般情况下…

Golang 面向对象编程 多态

基本介绍 变量(实例)具有多种形态。面向对象的第三大特征&#xff0c;在Go语言&#xff0c;多态特征是通过接口实现的&#xff08;接口能够体现多态的特征&#xff09;。可以按照统一的接口来调用不同的实现。这时接口变量就呈现不同的形态。 在前面的Usb接口案例&#xff0c;u…

金融行业的CFA、CPA和FRM你了解吗?中国人民大学与加拿大女王大学金融硕士需要吗?

CFA、CPA和FRM是金融行业中非常重要的专业资格认证&#xff0c;它们分别代表着不同领域的专业知识和技能。在当下越来越多的高校在把关金融硕士的申请过程中&#xff0c;拥有CFA、CPA和FRM都属于强大的加分项&#xff0c;中国人民大学与加拿大女王大学金融硕士也不例外&#xf…

软件工程与计算总结(十六)详细设计的设计模式

一.设计模式基础 某种意义上来说&#xff0c;设计模式就是设计经验的总结~ 设计模式不是简单的经验总结&#xff0c;更不是无中生有&#xff0c;它是经过实践反复检验、能解决关键技术难题、有广泛应用前景和能够显著提高软件质量的有效的经验总结。 每个模式都不是独立的&a…

Word保存后内容丢失?4个方法,有效找回数据!

“我利用Word文档写了一份重要的工作报告。明明已经保存了&#xff0c;但是里面的内容却莫名其妙丢失了。这可怎么办呢&#xff1f;有什么方法可以找回丢失的Word内容吗&#xff1f;” Word作为一个常用的办公工具&#xff0c;为我们的工作提供了很多的便利。但在使用Word时&am…