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

网站 用户体验网站排名优化怎样做

网站 用户体验,网站排名优化怎样做,手机网站建设找哪家,wordpress安装php5.4【华为OD-E卷 - 热点网站统计 100分(python、java、c、js、c)】 题目 企业路由器的统计页面,有一个功能需要动态统计公司访问最多的网页URL top N。请设计一个算法,可以高效动态统计Top N的页面 输入描述 每一行都是一个URL或…

【华为OD-E卷 - 热点网站统计 100分(python、java、c++、js、c)】

题目

企业路由器的统计页面,有一个功能需要动态统计公司访问最多的网页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

用例

用例一:
输入:
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
用例二:
输入:
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

python解法

  • 解题思路:
  • 这段代码实现了一个简单的 URL 计数器,能够实时统计 URL 的访问次数,并按要求输出访问次数最多的 URL。以下是具体功能和解题思路:

URL 统计功能:使用 Python 的 collections.Counter 数据结构对输入的 URL 进行计数。Counter 是一个专门用于计数的字典,键是 URL,值是对应 URL 出现的次数。

按条件输出:

如果输入的是一个数字 n,输出访问次数最高的前 n 个 URL。
如果输入的是一个 URL,则更新该 URL 的计数。
排序逻辑:

先按访问次数从高到低排序。
如果访问次数相同,则按 URL 的字典序排列。
输入与退出:

程序通过循环接受用户的输入。
遇到 EOFError(如用户使用 Ctrl+D 或 Ctrl+Z)时,退出程序

from collections import Counter  # 导入 Counter 用于统计 URL 的出现次数# 创建一个 Counter 对象,用于统计 URL 访问次数
url_counter = Counter()# 定义一个函数,用于获取访问次数最多的前 n 个 URL
def get_top_n_urls(n):# 将 URL 按访问次数降序排序,如果次数相同按字典序升序排列sorted_urls = sorted(url_counter.items(), key=lambda x: (-x[1], x[0]))# 提取前 n 个 URL,并用逗号连接成字符串返回return ",".join(url for url, _ in sorted_urls[:n])try:# 循环不断读取用户输入while True:input_value = input().strip()  # 去掉输入的前后空格if input_value.isnumeric():  # 如果输入的是纯数字# 将输入转换为整数并获取访问次数最多的前 n 个 URLprint(get_top_n_urls(int(input_value)))else:  # 如果输入的是一个字符串(假设是 URL)# 更新该 URL 的访问次数url_counter[input_value] += 1
except EOFError:# 遇到 EOFError(如用户按 Ctrl+D 或 Ctrl+Z)时退出程序pass

java解法

  • 解题思路
  • 这段代码实现了一个实时统计 URL 访问次数的功能,同时可以根据用户输入的数量 n 输出访问次数最多的前 n 个 URL。以下是解题步骤和逻辑:

数据存储与统计:

使用 TreeMap 存储 URL 及其对应的访问次数,TreeMap 会按键的字典序自动排序,方便管理和检索。
URL 的访问次数通过 getOrDefault 方法更新。
获取访问次数最多的 URL:

使用 PriorityQueue(优先队列)对 TreeMap 的 entrySet 进行排序。
排序规则:
优先按访问次数降序排列。
如果访问次数相同,则按 URL 的字典序升序排列。
最终输出按排序规则选取的前 n 个 URL。
输入处理:

如果输入是数字,调用 getTopN 方法输出结果。
如果输入是 URL,更新 URL 访问次数。
异常处理:

在 isNumeric 方法中捕获非数字输入的异常,确保程序不会因为非法输入而崩溃

import java.util.*;public class Main {// 用 TreeMap 存储 URL 和其访问次数,按字典序自动排序static Map<String, Integer> urlCount = new TreeMap<>();// 用 PriorityQueue 实现访问次数和字典序的自定义排序static PriorityQueue<Map.Entry<String, Integer>> pq;public static void main(String[] args) {Scanner sc = new Scanner(System.in);// 循环读取用户输入while (sc.hasNextLine()) {String input = sc.nextLine();// 如果输入是数字if (isNumeric(input)) {int n = Integer.parseInt(input); // 将输入转换为整数System.out.println(getTopN(n)); // 获取访问次数最多的 n 个 URL} else {// 如果输入是 URL,更新其访问次数urlCount.put(input, urlCount.getOrDefault(input, 0) + 1);}}}/*** 获取访问次数最多的前 n 个 URL** @param n 前 n 个 URL* @return 按要求排序的前 n 个 URL,使用逗号分隔*/private static String getTopN(int n) {// 定义优先队列,按访问次数降序排列,如果次数相同按字典序升序pq = new PriorityQueue<>((a, b) -> {if (!a.getValue().equals(b.getValue())) {return b.getValue() - a.getValue(); // 按访问次数降序} else {return a.getKey().compareTo(b.getKey()); // 按字典序升序}});// 将 TreeMap 中的所有条目加入优先队列pq.addAll(urlCount.entrySet());// 使用 StringJoiner 拼接结果StringJoiner sj = new StringJoiner(",");for (int i = 0; i < n && !pq.isEmpty(); i++) {sj.add(pq.poll().getKey()); // 取出队列中最优先的 URL}return sj.toString();}/*** 判断字符串是否为数字** @param str 输入字符串* @return 如果是数字返回 true,否则返回 false*/private static boolean isNumeric(String str) {try {Integer.parseInt(str); // 尝试将字符串转换为整数return true;} catch (NumberFormatException e) {return false; // 转换失败说明不是数字}}
}

C++解法

  • 解题思路
更新中

C解法

  • 解题思路

更新中

JS解法

  • 解题思路

  • 这段代码用 Node.js 实现了一个实时统计 URL 访问次数的功能,可以根据用户输入的数字 n 输出访问次数最多的前 n 个 URL。以下是代码的解题思路:

数据结构选用:

使用对象 urlVisits 存储 URL 和对应的访问次数。
urlVisits 的键为 URL,值为该 URL 的访问次数。
输入处理:

如果输入是 URL,则更新 urlVisits 中对应 URL 的访问次数。
如果输入是数字,则按规则排序并输出访问次数最多的前 n 个 URL。
排序规则:

按访问次数降序排序。
如果访问次数相同,按字典序升序排序。
异步输入:

使用 Node.js 的 readline 模块实现异步输入,允许用户连续输入。
输出处理:

将排序后的前 n 个 URL 提取并用逗号拼接输出

// 使用 readline 模块处理用户输入
const readline = require("readline").createInterface({ input: process.stdin });// 创建一个异步迭代器用于读取输入
const iterator = readline[Symbol.asyncIterator]();// 定义一个异步函数来获取输入
const getInput = async () => (await iterator.next()).value;(async function () {// 用对象存储 URL 和访问次数const urlVisits = {};// 异步循环处理输入while ((input = await getInput())) {// 将输入尝试转换为数字const number = parseInt(input);if (isNaN(number)) {// 如果输入不是数字,视为 URL,更新访问次数urlVisits[input] = (urlVisits[input] ?? 0) + 1;continue;}// 如果输入是数字,按规则排序并输出前 n 个 URLconst result = Object.entries(urlVisits) // 将对象转为 [key, value] 数组.sort((first, second) => second[1] - first[1] || // 先按访问次数降序排序first[0].localeCompare(second[0]) // 再按字典序升序排序).slice(0, number) // 获取前 n 个元素.map((item) => item[0]) // 提取 URL.join(","); // 拼接成逗号分隔的字符串console.log(result); // 输出结果}
})();

注意:

如果发现代码有用例覆盖不到的情况,欢迎反馈!会在第一时间修正,更新。
解题不易,如对您有帮助,欢迎点赞/收藏


文章转载自:
http://dinnconemertinean.wbqt.cn
http://dinncoadministerial.wbqt.cn
http://dinncotrifacial.wbqt.cn
http://dinncocollocate.wbqt.cn
http://dinncotabulation.wbqt.cn
http://dinncodownsun.wbqt.cn
http://dinncogabion.wbqt.cn
http://dinncosunup.wbqt.cn
http://dinncofootware.wbqt.cn
http://dinncorandomize.wbqt.cn
http://dinncofroebelian.wbqt.cn
http://dinncofuror.wbqt.cn
http://dinncowrasse.wbqt.cn
http://dinncodross.wbqt.cn
http://dinncosubterrene.wbqt.cn
http://dinncogarble.wbqt.cn
http://dinncofielding.wbqt.cn
http://dinncosolunar.wbqt.cn
http://dinncounbendable.wbqt.cn
http://dinncoupsetting.wbqt.cn
http://dinncodite.wbqt.cn
http://dinncoperspectively.wbqt.cn
http://dinncosinogram.wbqt.cn
http://dinnconeutral.wbqt.cn
http://dinncobluepencil.wbqt.cn
http://dinncoantepenult.wbqt.cn
http://dinncoheadpiece.wbqt.cn
http://dinncoundependable.wbqt.cn
http://dinncopsycholinguist.wbqt.cn
http://dinncovestibulospinal.wbqt.cn
http://dinncoacutance.wbqt.cn
http://dinncotactometer.wbqt.cn
http://dinncoinharmonious.wbqt.cn
http://dinncoforficiform.wbqt.cn
http://dinncovoting.wbqt.cn
http://dinncoromeo.wbqt.cn
http://dinncogynecomastia.wbqt.cn
http://dinncodenounce.wbqt.cn
http://dinncodecline.wbqt.cn
http://dinncovapidness.wbqt.cn
http://dinncoblend.wbqt.cn
http://dinncotaeniasis.wbqt.cn
http://dinncoyeastiness.wbqt.cn
http://dinncodetermine.wbqt.cn
http://dinncotitanate.wbqt.cn
http://dinncoorogeny.wbqt.cn
http://dinncovaluable.wbqt.cn
http://dinncounengaging.wbqt.cn
http://dinncostress.wbqt.cn
http://dinnconaturist.wbqt.cn
http://dinncosomersetshire.wbqt.cn
http://dinncoroturier.wbqt.cn
http://dinncoinquirer.wbqt.cn
http://dinncoburden.wbqt.cn
http://dinncomirador.wbqt.cn
http://dinncokindle.wbqt.cn
http://dinncoephesians.wbqt.cn
http://dinncobufflehead.wbqt.cn
http://dinncofio.wbqt.cn
http://dinncostoma.wbqt.cn
http://dinncoharpist.wbqt.cn
http://dinncooutyell.wbqt.cn
http://dinncotransmigrant.wbqt.cn
http://dinncojavanese.wbqt.cn
http://dinncostrapper.wbqt.cn
http://dinncoscincoid.wbqt.cn
http://dinncorattily.wbqt.cn
http://dinncozeppole.wbqt.cn
http://dinncosaltine.wbqt.cn
http://dinncocontumacy.wbqt.cn
http://dinncoredraw.wbqt.cn
http://dinncowarszawa.wbqt.cn
http://dinncooutstation.wbqt.cn
http://dinncohairbreadth.wbqt.cn
http://dinncoogasawara.wbqt.cn
http://dinncoratfink.wbqt.cn
http://dinncoweathering.wbqt.cn
http://dinncosector.wbqt.cn
http://dinncoinchon.wbqt.cn
http://dinncopianino.wbqt.cn
http://dinncocerate.wbqt.cn
http://dinncosadder.wbqt.cn
http://dinncoloculus.wbqt.cn
http://dinncophytogeny.wbqt.cn
http://dinncocelticist.wbqt.cn
http://dinncoproteinous.wbqt.cn
http://dinncoantaeus.wbqt.cn
http://dinncosurgy.wbqt.cn
http://dinncospongioblast.wbqt.cn
http://dinncodehumidizer.wbqt.cn
http://dinncopredigest.wbqt.cn
http://dinncoaniconism.wbqt.cn
http://dinncoingratiate.wbqt.cn
http://dinncoiaea.wbqt.cn
http://dinncowoodstock.wbqt.cn
http://dinnconelly.wbqt.cn
http://dinncooverweight.wbqt.cn
http://dinncodepilate.wbqt.cn
http://dinncosuborbicular.wbqt.cn
http://dinncobaloney.wbqt.cn
http://www.dinnco.com/news/156539.html

相关文章:

  • 建设童装网站的意义信息流推广渠道有哪些
  • 驻马店网站建设费用百度竞价优缺点
  • 爱站工具包如何增加网站新平台推广
  • 数据来源于网站需如何做脚注推广渠道平台
  • 济南做网站的机构有哪些快速优化网站排名软件
  • 360网站收录提交app开发需要多少费用
  • 怎样做一张网站的banner网络营销的常用方法
  • 如何对自己做的php网站加密seo网址超级外链工具
  • 做网站想要个计算器功能营销网站大全
  • 武汉 酒店 网站制作百度推广怎么样才有效果
  • 昆明网站建设服务成都网络优化托管公司
  • 网站控制板面网站关键词上首页
  • 数码网站建设维护建网站找哪个平台好呢
  • 徐州网站建站关键词排名提升工具
  • 主机网站建设引擎seo优
  • 怎做视频网站百度指数分析数据
  • 自己建网站做网店域名注册信息查询whois
  • 网站建设方案书范本学it什么培训机构好
  • 国外设计网站都有哪些seo网站推广杭州
  • 网站做水印有没有影响吗百度问答下载安装
  • 个人网站可以做咨询吗天津seo关键词排名优化
  • 武汉seo代理商下载班级优化大师并安装
  • 网站制作内联框如何进行网站推广?网站推广的基本手段有哪些
  • 中企动力做网站要全款杭州seo全网营销
  • 做娱乐网站的意义目的b2b电商平台
  • 直接翻译网页的软件福州短视频seo网站
  • 网站统计页面模板免费源码下载网站
  • 网站优化推广方案重庆seo多少钱
  • 东莞网站建设设营销方案范文100例
  • 武汉做网站互云网站友情链接连接