您的位置:首页 > 教育 > 锐评 > 宁波网站建设托管_湖南系统开发_个人网站推广_学网络营销

宁波网站建设托管_湖南系统开发_个人网站推广_学网络营销

2025/2/24 23:18:04 来源:https://blog.csdn.net/weixin_45228198/article/details/144326899  浏览:    关键词:宁波网站建设托管_湖南系统开发_个人网站推广_学网络营销
宁波网站建设托管_湖南系统开发_个人网站推广_学网络营销

题目

企业路由器的统计页面,有一个功能需要动态统计公司访问最多的网页URL top N,设计一个算法,可以高效动态统计TopN的页面;
输入描述:
每一行都是一个url 或者 一个数字;
如果是url,代表一段时间内的网页访问,如果是一个数字N,代表本次需要输出的TopN个url;
输入约束:
总访问网页数量小于5000个,单网页访问次数小于65535次;
网页url仅由字母、数字、点组成,且长度小于等于127字节;
数字是正整数,小于等于10且小于当前总访问网页数;
输出描述:
每个数字输入对应一行输出,输出按访问次数排序TopN个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

 

解题代码

from functools import cmp_to_keydef cmp(a, b):if a[1] != b[1]:return b[1] - a[1]  # 降序elif a[0] != b[0]:return 1 if a[0] > b[0] else -1 # 升序else:return 0urls = []
url_map = {}
def statistic(input_str):global urlsglobal url_mapn = int(input_str)  # top Nj = 0while j < len(urls):if urls[j] not in url_map:url_map[urls[j]] = 1else:url_map[urls[j]] += 1j += 1url_count = sorted(list(url_map.items()), key=cmp_to_key(cmp), reverse=False)output_str = ""# 输出字符串for i in range(n):output_str += url_count[i][0] + ","return output_str[:-1]result = ""
while True:try:# 输入input_str = input().strip()if input_str.isdigit():# 统计topNresult+= statistic(input_str) + "\n"urls = []else:# 输入url地址,存入urls.append(input_str)except:  # 输入结束breakprint(result[:-1])

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com