【编程题目 |200分】热点网站统计【2022 Q2考试题】
时间限制:C/C++ 1秒,其他语言 2秒
空间限制:C/C++262144K,其他语言524288K
64bit IO Format:%lld
本题可使用本地IDE编码,不能使用本地已有代码,无跳出限制,
编码后请点击”保存并调试“按钮进行代码提交。
■ 题目描述
【热点网站统计】
企业路由器的统计页面,有一个功能需要动态统计公司访问最多的网页URL top N。请设计一个算法,可以高效动态统计Top N的页面。
输入描述
每一行都是一个URL或一个数字,如果是URL,代表一段时间内的网页访问;
如果是一个数字N,代表本次需要输出的Top N个URL。
输入约束
1、总访问网页数量小于5000个,单网页访问次数小于65535次;
2、网页URL仅由字母,数字和点分隔符组成,且长度小于等于127字节;
3、数字是正整数,小于等于10且小于当前总访问网页数;
输出描述
每行输入要对应一行输出,输出按访问次数排序的前N个URL,用逗号分隔。
输出要求
1、每次输出要统计之前所有输入,不仅是本次输入;
2、如果有访问次数相等的URL,按URL的字符串字典序升序排列,输出排序靠前的URL;
示例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
www.huawei.com
www.cctv.com
www.huawei.com
www.cctv.com
www.huawei.com
www.cctv.com
www.huawei.com
www.cctv.com
www.huawei.com
3
输出
news.qq.com,game.163.com,news.sina.com.cn
www.huawei.com,www.cctv.com,news.qq.com
示例2 输入输出示例仅供调试,后台判题数据一般不包含示例
输入
news.qq.com
www.cctv.com
1
www.huawei.com
www.huawei.com
2
3
输出
news.qq.com
www.huawei.com,news.qq.com
www.huawei.com,news.qq.com,www.cctv.com
C++
#include <bits/stdc++.h> using namespace std;
剩余50%内容,订阅会员后查看
此处内容需要权限查看
会员免费查看JAVA解法一
import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class TopNWebsite { public static void main(String[] args) { List<String> urls = new ArrayList<>(); List<Integer> counts = new ArrayList<>(); Scanner in = new Scanner(System.in); while (in.hasNextLine()) {
剩余50%内容,订阅会员后查看
此处内容需要权限查看
会员免费查看JAVA解法二
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) {
剩余50%内容,订阅会员后查看
此处内容需要权限查看
会员免费查看JavaScript
let map = new Map();
剩余50%内容,订阅会员后查看
此处内容需要权限查看
会员免费查看Python
import collections import sys urls = []
剩余50%内容,订阅会员后查看
此处内容需要权限查看
会员免费查看