大体思路是字符串按行输出(这里注意getchar()),每一行用set保存话题(便于去重),然后把每一行出现的话题放入map集合中,因为map我不太会排序,转化一下思路,遍历map,将每一个map对转化成pair存入vector数组,这样就可以排序了,然后输出就可以。不过肯定有写细节需要注意了,比如在向集合里存话题时,将非英文字母非数字的字符全部转化为空格,多个空格合并成一个空格,否则就会格式错误。

#include <bits/stdc++.h>
#define INF 1e10
using namespace std;
typedef long long ll;
map<string,int> ma;
map<string,int>::iterator qq;
set<string> s;
set<string>::iterator it;
vector<pair<string,int> > pa;bool cmp(pair<string,int> a, pair<string,int> b)
{if(a.second == b.second)return a.first<b.first;return a.second > b.second;
}
int main()
{int n;cin>>n;getchar();while(n--){s.clear();int l,l1 = -1,l2 = -1;string buf;getline(cin,buf);l = buf.size();char p[150];for(int i = 0;i < l;i++){//取出话题if(buf[i] == '#' && l1 == -1){l1 = i;}else if(buf[i] == '#' && l1 != -1)l2 = i;if(l2 != -1){memset(p,0,sizeof(p));//printf("%dgg\t%dgg\n",l1,l2);int num = 0;for(int j = l1 + 1;j < l2;j++){//cout<<buf[j];if(isalpha(buf[j]) || isdigit(buf[j])){//cout<<buf[j];if(isupper(buf[j])){buf[j] = (char)('a' - 'A' + (int)buf[j]);//cout<<buf[j];}//这里注意因为最后输出用一个空格分隔原文中的单词,所以多个空格合并成一个空格if(buf[j-1] == ' ') p[num++] = ' ';p[num++] = buf[j];}else buf[j] = ' ';}//cout<<p<<endl;l1 = l2 = -1;s.insert(p);}}for(it = s.begin();it != s.end();it++){string q = *it;//cout<<q<<endl;ma[q]++;}}for(qq = ma.begin();qq != ma.end();qq++){pair<string,int> r;r.first = qq->first;r.second = qq->second;pa.push_back(r);}sort(pa.begin(),pa.end(),cmp);int num = pa[0].second;string x = pa[0].first;x[0] = (char)(x[0] + 'A' - 'a');int oth = 0;for(int i = 1;i < pa.size();i++){if(pa[i].second == num)oth++;}cout<<x<<endl;printf("%d\n",num);if(oth){printf("And %d more ...\n",oth);}return 0;
}

7-15 新浪微博热门话题相关推荐

  1. 5-46 新浪微博热门话题 (30分)

    5-46 新浪微博热门话题 (30分) 新浪微博可以在发言中嵌入"话题",即将发言中的话题文字写在一对"#"之间,就可以生成话题链接,点击链接可以看到有多少人在 ...

  2. 数据结构PTA 进阶实验5-3.2 新浪微博热门话题

    进阶实验5-3.2 新浪微博热门话题 题目 解法 题目 新浪微博可以在发言中嵌入"话题",即将发言中的话题文字写在一对"#"之间,就可以生成话题链接,点击链接可 ...

  3. 数据结构PTA习题:进阶实验5-3.2 新浪微博热门话题 (30分)

    进阶实验5-3.2 新浪微博热门话题 (30分) 新浪微博可以在发言中嵌入"话题",即将发言中的话题文字写在一对"#"之间,就可以生成话题链接,点击链接可以看到 ...

  4. 7-46 新浪微博热门话题(字符串)

    题目链接:7-46 新浪微博热门话题 考查知识:字符串 题意描述: 给定n条微博,每条微博里有若干话题,试统计被最多条微博提到的话题. 思路简析: 首先对#号位置进行记录,然后用a.substr(开始 ...

  5. PAT结构与算法7-46 新浪微博热门话题 (50行精简 测试点分析)

    7-46 新浪微博热门话题 (30 分) 新浪微博可以在发言中嵌入"话题",即将发言中的话题文字写在一对"#"之间,就可以生成话题链接,点击链接可以看到有多少人 ...

  6. 7-46 新浪微博热门话题 (30 分)(思路+详解+set + map)pta逐个点过的 来呀兄弟们

    一 :题目 新浪微博可以在发言中嵌入"话题",即将发言中的话题文字写在一对"#"之间,就可以生成话题链接,点击链接可以看到有多少人在跟自己讨论相同或者相似的话题 ...

  7. 7-46 新浪微博热门话题

    ➳ENTRY 新浪微博可以在发言中嵌入"话题",即将发言中的话题文字写在一对"#"之间,就可以生成话题链接,点击链接可以看到有多少人在跟自己讨论相同或者相似的话 ...

  8. python爬取新浪微博热门话题保存到excel等文件

    第一步 在网页上登录新浪微博,获取登录cookie 先把它复制好先,进行第二步 第二步 废话不多说,直接上代码,把刚刚复制好的值,赋给co变量 # -*- coding: utf-8 -*- &quo ...

  9. 7-46 新浪微博热门话题 (30分)--map

    1 #include<iostream> 2 #include <map> 3 #include <string> 4 #include <cstring&g ...

  10. PTA新浪微博热门话题(题面毒瘤)

    这道题的题目描述非常容易让人误解 测试点1容易过掉 一般没有问题 测试点2会出现k等于0的情况 这个时候最后一行是不输出的(题目没有写清楚) 测试点3容易出现PE 实际上是中间的处理过程存在问题 这里 ...

最新文章

  1. 就是这么简单(续)!使用 RestAssuredMockMvc 测试 Spring MVC Controllers(转)
  2. 不仅仅是虚拟化--Windows 7 SP1 Windows 2008R2 SP1解析
  3. python 求两条曲线的交点_这几种问法都是考察张角问题,高考数学圆锥曲线的焦点弦张角定理...
  4. java内部类为什么会持有外部类的引用_java中内部类为什么会持有外部类的引用?...
  5. lru算法实现 redis_使用数组与双向链表实现一个简单的LRU算法
  6. Arraylist理解(2)扩容
  7. 母亲节:微信喊你给母亲充钱 华为帮你教爸妈用手机
  8. python span镶嵌匹配_python模式匹配,提取指定字段
  9. 爱数智慧荣获“阿里云2021年度优秀供应商” | 喜讯
  10. LibSvm使用说明和LibSvm源码解析
  11. BP神经网络介绍及算法实现
  12. PSV 2000 3.68降级3.60固化教程
  13. Pandas的基本操作
  14. 统一认证 java_java统一身份认证系统
  15. linux中运行alise,Linux学习笔记
  16. TensorFlow 核心流程剖析 -- 2 神经网络模型的构建、分割和优化
  17. WIN10计算机不支持3D游戏怎么办,教您如何在win10系统中启用3D加速?
  18. 关于@Result注解的说明
  19. 计算机科学 杂志 撤稿,哈佛教授2篇顶刊遭撤稿:相同样品花样“复用”,伪装成不同实验结果...
  20. python实现问卷网的自动填写详解

热门文章

  1. python转义字符\r的使用
  2. HDU 5294 Tricks Device (最大流+最短路)
  3. 特斯拉开火,状告5名前员工、小鹏汽车、Zoox身陷漩涡...
  4. Linux操作系统文件类型有哪几种?
  5. 重磅!融云推出「百幄」政企数智办公平台
  6. 算法与数据结构学习资源大搜罗——良心推荐
  7. 手机上怎么访问电脑html页面,手机UC浏览器怎么访问电脑版 访问电脑页面方法...
  8. 蒲丰投针实验原理_神奇的圆周率——布丰投针实验
  9. 噪音达到多少分贝就算是扰民
  10. c语言一个整数犯二的程度编程,团体程序设计天梯赛-练习集 L1-017 到底有多二...