p5015 [noip2018 普及组] 标题统计
时间: 2023-04-22 11:06:06 浏览: 149
NOIP2018普及组C++试题
题目描述
给定一篇长度不超过 $1000$ 的文章,在文章中统计每个单词出现的次数,按出现次数从大到小输出单词和对应的出现次数。文章中的单词由大小写字母构成,不含其他字符。单词不区分大小写。
输入格式
输入一行,表示一篇文章。文章中单词由大小写字母构成,不含其他字符。输入数据保证文章长度不超过 $1000$。
输出格式
输出若干行,每行两个用空格隔开的整数,表示一个单词和其出现的次数。输出顺序:先按出现次数从大到小输出,如果出现次数相同,按单词字典序从小到大输出。输出的单词必须全部小写。
输入样例1
This is a test.
输出样例1
a 1
is 1
test 1
this 1
输入样例2
This is a test. This is only a test.
输出样例2
a 2
is 2
test 2
this 2
only 1
题解
本题需要统计文章中每个单词出现的次数,而且要按出现次数从大到小输出单词和对应的出现次数。题目要求单词不区分大小写,而且如果出现次数相同,按单词字典序从小到大输出。
为了解决这个问题,我们可以先将所有单词都转换成小写,然后将它们存储在一个哈希表中。哈希表中的每个元素都表示一个单词和它在文章中出现的次数。遍历哈希表,按照出现次数从大到小排序,并按照字典序从小到大排序,输出每个单词和对应的出现次数即可。
代码如下:
阅读全文