网上新闻越来越多,希望对新闻进行热词处理并归类,方便获取信息,现在已经将每篇文章处理为 2 个字符串,即一个标题,一个正文串,字符串中使用“ ”作为分隔符进行分词。 M 篇新闻按照新闻发布的先后顺序处理完并输入,现在希望对所有新闻中出现的词语进行处理,输出出现频率最高的 topN 个词语,作为热词。 标题中出现的词语频率系数为 3,正文中出现的词语频率系数为 1; 返回的答案按照词语出现频率由高到低排序; 当词语出现的频率相同时,在标题中出现的频率次数高的排在前面; 如果仍然相同,则按照词语在标题中出现的先后顺序进行排序,先出现的排在前面; 如果仍然相同,则按照词语在正文中出现的先后顺序进行排序,先出现的排在前面。
输入描述:
第一行输入为正整数 topN 和文章数 M,即要输出的出现频率最高的词语的个数和处理文章的数量,由于每篇文章被处理为标题和正文 2 行,因此后面有2 * M行数据。 从第二行起,是按顺序处理后每篇文章的标题串和正文串,即第二行是第一篇文章的标题串,第三行是第一篇文章的正文串,第四行是第二篇文章的标题串,第五行是第二篇文章的正文串,以此类推。
参数限制如下: 0 < topN < 1000 0 < M < 100000 0 < 每篇文章的词语数 < 5000
输出描述:
使用一行输出出现频率最高的 topN 个词语,每个词语以“ ”隔开。
使用一个map来存储单词信息,key为单词本身,value为一个统计该单词:出现次数、标题中出现次数、标题中的顺序、正文中的顺序。 然后可以根据上面保存的 value 信息来进行排序,得到答案后输出 下图是示例中单词的统计信息进行排序后的结果: