【华为软件实习机考真题】热词选择

本文分享了华为软件实习机考中的一道100分题,涉及热词选择的标准和解决策略。标准包括出现次数、词的位置和出现顺序。解题过程中,重点介绍了利用Java对自定义类进行比较排序的知识,如重写函数、优先级队列等,以找到文章中的TopN热词。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面

满分600分,题目分为100,200,300分,该题目是100分题;
没有现场AC,后续花了2个小时完成,涉及到很多东西还不是特别熟悉。

题目描述

给出多篇文章,根据下列标准选择出topN个热词。
标准1:出现次数越多,权值越大,排名越靠前;出现在题目中权值+3,出现在文本中权值+1;
标准2:权值相同的词,出现在题目中,排名优先于出现在文本中;
标准3:权值相同且均出现在题目或者文本中,出现越早,排名越靠前。

下面给出M篇文章,每一篇文章题目占一行,文本占一行,即一篇文章2*M行,输出前topN个热词。

import java.util.*;
class Token implements Comparable<Token>
{
   
   
	 String str;
	 int val;
	 int position;
	 int where;
	 
	 public Token(String s, int v, int p, int w)
	 {
   
   
		 str = s;
		 val = v;
		 position = p;
		 where = w;
	 }

	@Override
	public int hashCode() {
   
   
		return str.hashCode();
	}

	@Override
	public boolean equals(Object obj) {
   
   
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Token other = (Token) obj;
		return Objects.equals(str, other.str);
	}

	@Override
	public int compareTo(Token o) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值