BIT2009年上机题第四题
来源:互联网 发布:android json解析库 编辑:程序博客网 时间:2024/06/07 23:05
题目要求:
输入一个英文句子,把句子中的单词按出现次数按从多到少把单词和次数在屏幕上输出来,要求能识别英文句号和逗号,即是说暂不要求识别其他符号
解题思路:
1.刚开始的思路是直接将句子读取到string里面,然后在一一解析,但是思路不通,string的长度是1,具体原因不清楚。
2.看到一些大神的思路,才意识到应该是边读边解析。
3.用map来存储数据,该如何根据value进行排序呢,网上有说用vector的,我觉得这个是个好思路,暂时还未实现。
先用如下的代码来实现伪排序
好吧,这道题又不是我独立完成的,PS:我啥时候能够独立完成一道题目嘞
期间遇到了一些小的BUG
1.如果连续的空格,“,”,“.”会出错
2.如果最后一个字符不是符号会出错
经过修改测试,最终成果终于完成。
代码如下:
#pragma warning (disable:4786)#include<iostream>#include<map>#include<string>using namespace std;int main(){char s[20],ch;map<string,int> mmap;int i=0;map<string,int>::iterator it;int count;while((ch=cin.get())!='\n'){if(ch!=' '&&ch!=','&&ch!='.'){ //是字母s[i++]=ch;}else{s[i]='\0';if(s[0]!='\0'){it =mmap.find(s);if(it!=mmap.end()){count = (*it).second;mmap[s]=count+1;}else{mmap[s]=1;}}strcpy(s,"");i=0;}}if(s[0]!='\0'){it =mmap.find(s);if(it!=mmap.end()){count = (*it).second;mmap[s]=count+1;}else{mmap[s]=1;}strcpy(s,"");i=0;}map<string,int>::iterator max;while(!mmap.empty()){max = mmap.begin();for(it=mmap.begin();it!=mmap.end();it++){if(it->second>max->second)max=it;}cout<<max->first<<":"<<max->second<<endl;mmap.erase(max);}return 0;}
0 0
- BIT2009年上机题第四题
- 算法 上机 第四题
- ZJU 09 复试上机 第四题
- 数值分析第四章上机实习题
- ZJU-PAT 1056. Mice and Rice (25) 浙大2013年上机复试第四题
- ZJU-PAT 1080. Graduate Admission (30) 浙大2014年上机复试第四题
- pat 1080. Graduate Admission (30) 浙大复试上机第四题
- c#第四章深入String类上机题2
- c#开发数据库第四章上机题3-4
- 第四章高级查询--上机题和经典案例
- 上机题
- 再接再厉 第四次上机
- 第四次上机实验
- 第四次上机实验
- 第四次上机实验
- 第四次上机报告
- 第四次上机作业
- 第四次上机作业
- 分割视图器UISplitViewController初使用
- Android 解决小米手机选取图片返回值为null
- 预防XSS攻击需要注意的地方。
- ubuntu上使用draw_net.py绘制caffe ssd网络结构
- redmine安装部署
- BIT2009年上机题第四题
- 知识库--Creating Nested Transactions By Akka 内存嵌套事务(129)
- Binary Tree Level Order Traversal
- PHPMailer使用教程(PHPMailer发送邮件实例分析)
- OpenLayers 3 之 地图控件(control)初始化与定制
- 讯飞实训之冒泡排序
- 设计模式1(单例模式)
- pgpool
- android 验证码