• 题目链接:7-46 新浪微博热门话题
  • 考查知识:字符串
  • 题意描述:
    • 给定n条微博,每条微博里有若干话题,试统计被最多条微博提到的话题。
  • 思路简析:
    • 首先对#号位置进行记录,然后用a.substr(开始截取位置,子串长度)截取子串
    • 遍历子串所有字符
      • 是字母isalpha(b[j]),首字母大写toupper(b[j]),其他字母小写tolower(b[j])
      • 不是数字!isdigit(b[j]),都转化为空格
      • 多个连续的空格自动合并成一个,前导后续空格也省略掉b.erase(j,1)
  • 具体代码
    #include<bits/stdc++.h>
    using namespace std;
    int main(){int n,mx=-1;cin>>n;getchar();map<string,int>m;//话题,被多少条微博提到 for(int i=0;i<n;i++){//输入 stack<int>s;string a,b;getline(cin,a);int z=a.size();for(int j=0;j<z;j++){//保存所有#的位置if(a[j]=='#')s.push(j);}map<string,int>m2;//话题,本条微博中该话题是否出现 while(s.size()){//每次取出2个#的位置int x=s.top();s.pop();int y=s.top();s.pop();int z=x-y-1,f=0;//z:子串长度 f:标记首字母 b=a.substr(y+1,z);//提取 2个#之间的内容for(int j=0;j<z;j++){if(isalpha(b[j])){//字母,首字母大写,其他字母小写 if(f++)b[j]=tolower(b[j]);else b[j]=toupper(b[j]);}else if(!isdigit(b[j]))b[j]=' ';//不是数字,都转化为空格 }for(int j=0;j<z;j++){//多个连续的空格自动合并成一个,前导后续空格也省略掉if(j==0&&b[j]==' ')b.erase(j,1),z--,j--;if(b[j]==' '&&j+1<z&&b[j+1]==' ')b.erase(j,1),z--,j--;} for(int j=z-1;j>=0;j--){if(j==z-1&&b[j]==' ')b.erase(j,1),z--,j++;}if(!m2[b]){//该话题在该条微博中第一次出现,更新mx m2[b]=1;mx=max(mx,++m[b]);}}    }int cn=0;//找出现最多话题的个数 for(auto it=m.begin();it!=m.end();it++){if(mx==it->second){cn++;if(cn==1)cout<<it->first<<endl<<it->second<<endl;}}if(cn>1)cout<<"And "<<cn-1<<" more ..."; return 0;
    }
    

7-46 新浪微博热门话题(字符串)相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 一组图诠释CNN及RNN的区别
  2. “正尝试安装的adobe flash player不是最新版本”的解决方法:
  3. IIS7配置PHP 报错 对找不到的文件启用文件监视
  4. 1.4 如何学习设计模式
  5. python画三维散点图-Python散点图与三维图
  6. outlook搜索栏不见了_回忆了一下Foxmail内置的全文搜索那点事,于是有了此文
  7. 统一社会信用代码校验和生成
  8. python社区微信群_Python 打造微信群聊天机器人(带操作界面)-Go语言中文社区...
  9. java毕业设计毕业论文答辩管理系统Mybatis+系统+数据库+调试部署
  10. 今日冬至《心的深处》孙溟㠭篆刻艺术
  11. 嵌入式 - 瑞萨宣讲
  12. 618营销新动向:Swisse年轻化产品教育成电商战场新突破口!
  13. Matlab中计算程序运行时间的几种方法
  14. 华为云文档数据库服务更安全
  15. 第三方风控的窘境:赚钱不易,生存更难
  16. failed to allocate memory 8 解决
  17. Navicat Premium 12 下载、安装、及注册机破解
  18. Quartz cron表达式格式
  19. java 计算百分比值
  20. 项目一 认识Linux操作系统

热门文章

  1. [5] Word 手把手教你写毕业论文-2
  2. 服务器固态支持热插拔吗,固态硬盘支持热插拔吗?
  3. 基于TensorFlow深度学习框架,运用python搭建LeNet-5卷积神经网络模型和mnist手写数字识别数据集,设计一个手写数字识别软件。
  4. AndroidStudio安装配置教程(参考)
  5. 点线形系列1-计算两点之间的距离
  6. Python学习笔记——数据分析之工作环境准备及数据分析建模理论基础
  7. React中文文档之Lifting State Up
  8. 为此计算机所有用户安装加载项,此网站需要运行以下加载项……如果您信任该网站和该加载项并允许运行该加载项...
  9. 【JAVA8】Map新方法,别再重复造车轮了
  10. 【转】关于“手动重新生成注册表性能计数器”的问题