7-3 词频统计 (30 分)

请编写程序,对一段英文文本,统计其中所有不同单词的个数,以及词频最大的前10%的单词。

所谓“单词”,是指由不超过80个单词字符组成的连续字符串,但长度超过15的单词将只截取保留前15个单词字符。而合法的“单词字符”为大小写字母、数字和下划线,其它字符均认为是单词分隔符。

输入格式:

输入给出一段非空文本,最后以符号#结尾。输入保证存在至少10个不同的单词。

输出格式:

在第一行中输出文本中所有不同单词的个数。注意“单词”不区分英文大小写,例如“PAT”和“pat”被认为是同一个单词。

随后按照词频递减的顺序,按照词频:单词的格式输出词频最大的前10%的单词。若有并列,则按递增字典序输出。

输入样例:

This is a test.The word "this" is the word with the highest frequency.Longlonglonglongword should be cut off, so is considered as the same as longlonglonglonee.  But this_8 is different than this, and this, and this...#
this line should be ignored.

结尾无空行

输出样例:(注意:虽然单词the也出现了4次,但因为我们只要输出前10%(即23个单词中的前2个)单词,而按照字母序,the排第3位,所以不输出。)

23
5:this
4:is
#include<bits/stdc++.h>
using namespace std;
struct node {string s;int num;
}p;
map<string, int>mp;
map<string, int>::iterator it;
vector<node>v;bool cmp(node a, node b) {if (a.num != b.num)return a.num > b.num;elsereturn a.s < b.s;
}int main()
{string s = "";char c;while (~scanf("%c", &c)) {if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c >= '0' & c <= '9') || (c == '_')) {if (c >= 'A' && c <= 'Z')c = c - 'A' + 'a';if (s.size() < 15)s += c;}else {if (s.size() != 0) {mp[s]++;s = "";}if (c == '#')break;}}for (it = mp.begin(); it != mp.end(); it++) {p.s = it->first;p.num = it->second;v.push_back(p);}sort(v.begin(), v.end(), cmp);cout << v.size() << endl;int m = v.size() / 10;for (int i = 0; i < m; i++) {cout << v[i].num << ":" << v[i].s << endl;}return 0;
}

数据结构查找-7-3 词频统计 (30 分)相关推荐

  1. 【PTA-python】第7章-1 词频统计 (30 分)--sys.stdin.read()读入到特定字符截至,双重排序条件key=lambda item:(-item[1], item[0])

    第7章-1 词频统计 分析 双重排序条件:字典序,数字降序 题目 解法 自解 参考代码截断到`#`输入的代码 分析 遇到含有回车的无效输入,while循环如何处理.同过input()字符串不断串联起来 ...

  2. 第7章-1 词频统计 (30 分)

    致读者:本人是一名通信专业学生,仅学了4天Python ,难免有些地方写的很笨拙. 写博客一方面是为了记录自己的学习过程中遇到的问题和思考,一方面是希望能够帮助到很多和自己一样处于困惑的读者. 水平有 ...

  3. 浙大数据结构:08-图7 公路村村通 (30 分)Prim与Kruskal算法

    08-图7 公路村村通 (30 分) 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数N( ...

  4. 数据结构查找-7-4 集合相似度 (25 分)

    7-4 集合相似度 (25 分) 给定两个整数集合,它们的相似度定义为:Nc​/Nt​×100%.其中Nc​是两个集合都有的不相等整数的个数,Nt​是两个集合一共有的不相等整数的个数.你的任务就是计算 ...

  5. [浙大数据结构] 04-树6 Complete Binary Search Tree (30分)

    1 题目描述 A Binary Search Tree (BST) is recursively defined as a binary tree which has the following pr ...

  6. 数据结构课设 词频统计

    5-20 词频统计   (30分) 请编写程序,对一段英文文本,统计其中所有不同单词的个数,以及词频最大的前10%的单词. 所谓"单词",是指由不超过80个单词字符组成的连续字符串 ...

  7. python软件和rost软件哪个更好_ROST-CM软件分词和词频统计用法体验

    ROST作为一款优秀的内容挖掘工具,在自然语言处理上提供一系列能够快速上手使用的功能,其中"分词"功能也是广为使用的.我们在对文本进行分词处理的过程中,由于词库是固定的,所以不管是 ...

  8. 【数据结构笔记42】哈希表应用:文件中单词词频统计

    本次笔记内容: 11.5 文件中单词词频统计 文章目录 题目 分析 程序框架 题目 如上图,对单词词频进行统计. 分析 如上图,涉及到对已有单词进行查找,因此要进行单词的管理,使用散列表. 程序框架 ...

  9. 8-2 sdust-Java-文件读取与统计【人工判编程题】 (30 分)

    8-2 sdust-Java-文件读取与统计[人工判编程题] (30 分) 在F:\file\有一个纯文本文件article.txt,里面是英文的文章.编写Java程序,读取该文章内容,统计其中的单词 ...

最新文章

  1. 北大韦神透露现状:自己课讲得不太好,中期学生退课后就剩下5、6个人
  2. LibLinear(SVM包)使用说明之(一)README
  3. 编程生涯 21 载,那些我踩过的坑
  4. 【APICloud系列|7】开发一个APP完整流程及注意事项
  5. linux-文件类型与查看文件型
  6. 索引扫描时,对同一个叶子块访问多次的原因初探
  7. 正在导出系统过程对象和操作 卡住_开会时CPU 飙升100%同事们都手忙脚乱记一次应急处理过程
  8. 现在web前端的工资怎样?
  9. sql 查询目标数据库中所有的表以其关键信息
  10. Devexpress控件中TreeList的递归绑定数据
  11. 【笔试/面试】—— Linux(块设备与字符设备/cron 和 crontab)
  12. 【codevs3945】 完美拓印
  13. 剖析360为什么要做路由器
  14. 用HTML5制作简单的个人简历
  15. 微信 html avi视频无法播放,怎么把qlv格式转成mp4?腾讯视频qlv格式转换mp4方法
  16. java爬取堆糖所有头像(高质量版头像)
  17. Python爬取腾讯招聘信息
  18. 鸢尾花lris数据集的SVM线性分类
  19. Redis imgrate迁移键 (error) ERR Target instance replied with error: NOAUTH Authentication required.
  20. JavaWeb笔记(五)后端

热门文章

  1. android 单点跟长按的区别,单点触控和多点触控区别是什么?原理分析
  2. 奉劝学弟学妹,学完JavaScript就该学TypeScript了,让我们一起了解TypeScript和如何去搭建运行环境吧
  3. 软件测试面试问题汇总
  4. 素饺子馅的做法大全 素饺子馅如何做
  5. diy nas配置推荐2019_打造家用NAS之一(2019年版)
  6. node安装指定版本 (LTS 长期稳定版本,Current 最新版本)
  7. 超详细的 Wireshark 使用教程
  8. Ubuntu22.04安装riscv64-toolchain和QEMU
  9. ThinkPad T440s 改 T450s
  10. java架构师年薪_Java架构师一般的薪资是多少?高不高?