【2024最新华为OD-C/D卷试题汇总】[支持在线评测] API集群访问频次统计(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员

✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解

💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导

👏 感谢大家的订阅➕ 和 喜欢💗

📎在线评测链接

https://app5938.acapp.acwing.com.cn/contest/2/problem/OD1066

🌍 评测功能需要 ⇒ 订阅专栏 ⇐ 后私信联系清隆解锁~

🍓OJ题目截图

在这里插入图片描述

文章目录

    • 📎在线评测链接
    • 🍓OJ题目截图
    • ✨ API集群访问频次统计
      • 问题描述
      • 输入格式
      • 输出格式
      • 样例输入
      • 样例输出
      • 样例输入
      • 样例输出
      • 数据范围
      • 题解
      • 参考代码

✨ API集群访问频次统计

问题描述

某个产品的 R E S T f u l RESTful RESTful A P I API API 集合部署在多个服务器节点上。为了实现负载均衡,需要统计各个 A P I API API 的访问频次,找出访问热点。给定一组 A P I API API 的访问日志,请统计指定层级上特定关键字出现的频次。

R E S T f u l RESTful RESTful A P I API API 由多个层级构成,层级之间用 '/' 连接。例如,/A/B/C/D 表示一个 4 4 4 A P I API API,其中 A A A 属于第一级, B B B 属于第二级,以此类推。

输入格式

第一行包含一个正整数 N N N,表示访问日志的条数。

接下来 N N N 行,每行表示一条访问日志,包含一个 A P I API API U R L URL URL 地址。地址中只包含英文字母和 '/',最大层级不超过 10 10 10,每层的字符串长度不超过 10 10 10

最后一行包含两个整数 L L L S S S,分别表示目标层级和要查询的关键字。

输出格式

输出一个整数,表示第 L L L 级中关键字 S S S 出现的频次。如果第 L L L 级中没有出现关键字 S S S,则输出 0 0 0

注意:匹配时区分大小写。

样例输入

5
/huawei/computing/no/one
/huawei/computing
/huawei
/huawei/cloud/no/one
/huawei/wireless/no/one
2 computing

样例输出

2

样例输入

5
/huawei/computing/no/one
/huawei/computing
/huawei
/huawei/cloud/no/one
/huawei/wireless/no/one
4 two

样例输出

0

数据范围

  • 1 ≤ N ≤ 1000 1 \le N \le 1000 1N1000
  • 1 ≤ L ≤ 10 1 \le L \le 10 1L10
  • 1 ≤ l e n g t h ( S ) ≤ 10 1 \le length(S) \le 10 1length(S)10

题解

这道题可以用哈希表来解决。具体步骤如下:

  1. 用一个哈希表 c n t cnt cnt 统计每个层级上各关键字的出现频次。哈希表的键为 (level, word) 二元组,表示层级和关键字,值为该关键字在该层级出现的频次。

  2. 遍历访问日志中的每个 U R L URL URL

    • U R L URL URL'/' 切分成多个部分,每个部分对应一个层级。
    • 对于每个层级 i i i 和关键字 w o r d word word,将 c n t [ ( i , w o r d ) ] cnt[(i, word)] cnt[(i,word)] 的值加 1 1 1,表示 ( i , w o r d ) (i, word) (i,word) 这个键值对出现了一次。
  3. 查询目标层级 L L L 和关键字 S S S 在哈希表中的值,即 c n t [ ( L , S ) ] cnt[(L, S)] cnt[(L,S)] 的值,输出即可。如果哈希表中不存在键 ( L , S ) (L, S) (L,S),说明第 L L L 级中没有出现过关键字 S S S,输出 0 0 0

时间复杂度 O ( N × L ) O(N \times L) O(N×L),其中 N N N 为访问日志的条数, L L L U R L URL URL 的最大层级。空间复杂度 O ( N × L ) O(N \times L) O(N×L)

参考代码

  • Python
from collections import defaultdictn = int(input())
cnt = defaultdict(int)for _ in range(n):levels = input().split('/')for i in range(1, len(levels)):cnt[(i, levels[i])] += 1target_level, target_word = input().split()
target_level = int(target_level)print(cnt[(target_level, target_word)])
  • Java
import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();Map<String, Integer> cnt = new HashMap<>();for (int i = 0; i < n; i++) {String[] levels = sc.next().split("/");for (int j = 1; j < levels.length; j++) {String key = j + "," + levels[j];cnt.put(key, cnt.getOrDefault(key, 0) + 1);}}int targetLevel = sc.nextInt();String targetWord = sc.next();String targetKey = targetLevel + "," + targetWord;System.out.println(cnt.getOrDefault(targetKey, 0));}
}
  • Cpp
#include <iostream>
#include <unordered_map>
using namespace std;int main() {int n;cin >> n;unordered_map<string, int> cnt;for (int i = 0; i < n; i++) {string url;cin >> url;int pos = 0;for (int j = 1; j < url.size(); j++) {if (url[j] == '/') {string key = to_string(j) + "," + url.substr(pos + 1, j - pos - 1);cnt[key]++;pos = j;}}}int targetLevel;string targetWord;cin >> targetLevel >> targetWord;string targetKey = to_string(targetLevel) + "," + targetWord;cout << cnt[targetKey] << endl;return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IOS逆向分析—终极详细(三)

IOS逆向分析—终极详细&#xff08;三&#xff09; 前言一、逆向分析是什么&#xff1f;二、IDA分析1.下载并安装IDA2.安装插件3.加载二进制4.代码分析5.其它 总结 前言 本文是个人完成对IOS上APP分析的整个过程&#xff0c;当然对于不同的机型还会遇到不同的情况&#xff0c;谨…

RabbitMQ 开发指南

连接RabbitMQ 连接方式一&#xff1a; 也可以选择使用URI的方式来实现 连接方式二&#xff1a; Connection接口被用来创建一个Channel&#xff0c;在创建之后&#xff0c;Channel可以用来发送或者接收消息。 Channel channel conn.createChannel();使用交换器和队列 声明…

android在线阅读代码网站

android在线阅读代码社区&#xff1a; Android 1.6 到 Android 10 的源码&#xff1a; Android OS 在线源代码 - https://www.androidos.net.cn10.0.0_r6 - Android社区 - https://www.androidos.net.cn/ AndroidXRef https://cs.android.com/ https://cs.android.com/android…

《梦醒蝶飞:释放Excel函数与公式的力量》4.1if函数

第4章&#xff1a;逻辑与条件函数 第一节4.1 if函数 在Excel中&#xff0c;逻辑函数用于处理基于特定条件的真假判断&#xff0c;它们是构建复杂公式和进行高级数据分析的基础。本章将深入探讨逻辑函数的使用方法&#xff0c;特别是IF函数&#xff0c;这是Excel中最为常用的条…

win10免安装配置MySQL8.4.0

注&#xff1a;此教程基于win10 22H2 版本 1、下载最新版本MySQL压缩包 下载链接&#xff1a;MySQL官网下载地址 点击第二行的 ZIP Archive 后面的Download&#xff08;当前时间2024-06-19最新版本是8.4.0&#xff09; 2、解压并添加配置文件 下载完毕后&#xff0c;解压缩…

修复 pprof ---node_exproter访问漏洞(go-pprof-leak)

前言&#xff1a; ** 在Go语言中&#xff0c;pprof和debug包是用来检测和避免goroutine泄漏&#xff0c;避免导致goroutine泄漏&#xff0c;进而消耗大量系统资源。不过对于安全而言确又存在一定风险&#xff0c;** 风险&#xff1a; 通过node_exporter web发现 190.168.46.1…

数据结构之“算法的时间复杂度和空间复杂度”

&#x1f339;个人主页&#x1f339;&#xff1a;喜欢草莓熊的bear &#x1f339;专栏&#x1f339;&#xff1a;数据结构 目录 前言 一、算法效率 1.1算法的复杂度概念 1.2复杂度的重要性 二、时间复杂度 2.1时间复杂度的概念 2.2大O的渐进表示法 2.3常见的时间复杂度…

【人机交互 复习】第1章 人机交互概述

人机交互的知识点碎&#xff0c;而且都是文字&#xff0c;过一遍脑子里什么都留不下&#xff0c;但是背时间已经来不及了&#xff0c;最好还是找题要题感吧&#xff0c;加深印象才是做对文科的关键 一、概念 1.人机交互&#xff08;Human-Computer Interaction,HCI)&#xff1…

Blazor的SSR服务端渲染是不是交互式的

从.NET8开始&#xff0c;Blazor引入了SSR服务端渲染&#xff0c;归功于MVC和RazePage的沉淀&#xff0c;虽然来得晚&#xff0c;但一经发布&#xff0c;就将Blazor推向了新的高度。从今年开始&#xff0c;Youtube上关于Blazor的优质教学视频&#xff0c;以肉眼可见的速度在增加…

【机器学习】机器的登神长阶——AIGC

目录 什么是AIGC 普通用户接触AIGC网站推荐 通义千问 白马 普通用户如何用好AIGC 关键提示词的作用 AIGC的影响 就业市场&#xff1a; 教育领域&#xff1a; 创意产业&#xff1a; 经济活动&#xff1a; 社交媒体与信息传播&#xff1a; AIGC面临的挑战 什么是AIGC…

python离线安装第三方库、及其依赖库(单个安装,非批量移植)

文章目录 1.外网下载第三方库、依赖库2.内网安装第三方库3.补充附录内网中离线安装python第三方库,这时候只能去外网手动下载第三方库,再传回内网进行安装。 问题是python第三方库往往有其前置依赖包,你很难清楚某个第三方库依赖的是哪些依赖包,更难受的是依赖包可能还有其…

从零开始:使用ChatGPT快速创作引人入胜的博客内容

随着科技的飞速发展&#xff0c;人工智能逐渐渗透到我们生活的各个领域。无论是商业、教育还是娱乐&#xff0c;AI技术都在以惊人的速度改变着我们。特别是在内容创作领域&#xff0c;人工智能正发挥着越来越重要的作用。今天&#xff0c;我将和大家分享如何从零开始&#xff0…

【漏洞复现】极限OA video_file.php 任意文件读取漏洞

免责声明&#xff1a; 本文内容旨在提供有关特定漏洞或安全漏洞的信息&#xff0c;以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步&#xff0c;并非出于任何恶意目的。阅读者应该明白&#xff0c;在利用本文提到的漏洞信息或进行相关测…

2024年快手短视频带货教程,操作简单易上手

课程下载&#xff1a;https://download.csdn.net/download/m0_66047725/89389478 更多资源下载&#xff1a;关注我。 课程内容&#xff1a; 10-为什么做快手短视频带货 11-0粉丝开通小黄车 12-怎么挂小黄车&#xff0c;小黄车掉了怎么办 13-如何选品?好的选品成功率60% …

Github生成Personal access tokens及在git中使用

目录 生成Token 使用Token-手工修改 使用Token-自动 生成Token 登录GitHub&#xff0c;在GitHub右上角点击个人资料头像&#xff0c;点击Settings → Developer Settings → Personal access tokens (classic)。 在界面上选择点击【Generate new token】&#xff0c;填写如…

腾讯云API安全保障措施?有哪些调用限制?

腾讯云API的调用效率如何优化&#xff1f;怎么使用API接口发信&#xff1f; 腾讯云API作为腾讯云提供的核心服务之一&#xff0c;广泛应用于各行各业。然而&#xff0c;随着API应用的普及&#xff0c;API安全问题也日益突出。AokSend将详细探讨腾讯云API的安全保障措施&#x…

HarmonyOS之自选股App

支持在 鸿蒙、安卓、苹果设备上运行。 1.界面效果展示 2.数据存储 数据存储采用的是官方的 ohos.data.relationalStore.relationalStore stock_code表用来存储A股市场5000多家公司的股票代码和名称等信息 const TAB_STOCK_CODE "stock_code" const CREATE_TABL…

Flutter-无限循环滚动标签

1. 序章 在现代移动应用开发中&#xff0c;滑动视图是常见的交互模式之一。特别是当你需要展示大量内容时&#xff0c;使用自动滚动的滑动视图可以显著提升用户体验。在这篇文章中&#xff0c;我们将讨论如何使用 Flutter 实现一个自动滚动的列表视图。 2. 效果 3. 实现思路 …

C语言 | Leetcode C语言题解之第171题Excel表列序号

题目&#xff1a; 题解&#xff1a; int titleToNumber(char* columnTitle) {int number 0;long multiple 1;for (int i strlen(columnTitle) - 1; i > 0; i--) {int k columnTitle[i] - A 1;number k * multiple;multiple * 26;}return number; }

HTML静态网页成品作业(HTML+CSS)——手机电子商城网页(4个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有4个页面。 二、作品演示 三、代…