题目:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1783
思路:STL map+string
代码:

#include<bits/stdc++.h>
using namespace std;const int N = 1005;
char str[N];
map<pair<string,string>,int> a;
pair<string,string> p;
string h[N];
int main()
{int cnt = 0;while(gets(str)){string u = "",v = "";int i;for(i = 0;str[i] != '-';i++)u += str[i];for(i = i+2;str[i] != ':';i++)v += str[i];if(u > v)swap(u,v);p.first = u;p.second = v;a[p] = cnt;for(i = i+2;str[i] != '\0';i++)if(str[i] >= 'A' && str[i] <= 'Z')h[cnt] += str[i] + 32;else if((str[i] >= 'a' && str[i] <= 'z'))h[cnt] += str[i];elseh[cnt] += ' ';cnt++;}int sum = 0,ans = 0;for(map<pair<string,string>,int>::iterator it = a.begin();it != a.end();it++){sum++;int num = it->second;int len = h[num].length();bool flag = false;for(int i = 0;i < len-1;i++){int tt = 0;if((i >= 1 && h[num][i-1] == ' ') || i == 0)while( h[num][i] == 'h' && h[num][i+1] == 'e'){tt++;if((h[num][i+2] == ' ' || i+2 == len) && tt > 1){flag = true;break;}i+=2;}if(flag)break;}if(flag)ans++;}//printf("%d %d\n",sum,ans);double res = 1.0*ans*100.0/sum;res = round(res);printf("%.0f%%\n",res);return 0;
}
/*
A->B: Hello!
A->C: Hi!
B->A: Hehe
B->D: Hei!
D->B: How are you?
A->C: Hi???
A->C: Are you there?
B->D: Hehehei!
D->B: What does hehehei mean?
F->E: I want to hehehehehe yah.(i == 0 ||  h[num][i-1] == ' ') &&
B->A: iHehe
F->E: I want to hehehehehe yah.
B->D: Hehehe
A->C: Hehe
D->F: hhh
E->G: hehehe
*/

CSU-1783: 聊天止于呵呵(字符串处理)相关推荐

  1. 2015湖南省赛 CSU 1783 :聊天止于呵呵(模拟)

    1783: 聊天止于呵呵 Submit Page      Summary      Time Limit: 5 Sec       Memory Limit: 128 Mb       Submit ...

  2. 字符串模拟--1 聊天止于呵呵

    2015年省赛题: https://ac.2333.moe/Problem/view.xhtml?id=1645 [1645] 聊天止于呵呵 时间限制: 5000 ms 内存限制: 65535 K 问 ...

  3. CSU 1328 近似回文词【最长回文字符串(三种方法)】

    输入一行文本,输出最长近似回文词连续子串.所谓近似回文词是指满足以下条件的字符串: 1. S以字母开头,字母结尾 2. a(S)和b(S)最多有2k个位置不同,其中a(S)是S删除所有非字母字符并且把 ...

  4. csu1783——聊天止于呵呵(字符串)

    Description (现代版)俗话说:流言止于智者,聊天止于呵呵.输入一段聊天记录,你的任务是数一数有 多少段对话"止于呵呵",即对话的最后一句话包含单词 hehe 或者它的变 ...

  5. CSU 1113 Updating a Dictionary(map容器应用)

    题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1113 解题报告:输入两个字符串,第一个是原来的字典,第二个是新字典,字典中的元素的格式为 ...

  6. 在Linux下使用iconv转换字符串编码

    在Linux下写C程序,尤其是网络通信程序时经常遇到编码转换的问题,这里要用到iconv函数库. iconv函数库有以下三个函数 1 2 3 4 5 6 #include <iconv.h> ...

  7. CSU 1115: 最短的名字(字典树)

    1115: 最短的名字 题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1115 Description 在一个奇怪的村子中,很多人的名字都 ...

  8. Trie树 + DFS - CSU 1457 Boggle

    Boggle Problem's Link:  http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1457 Mean: 给定n个串,有m个询问. 每个询 ...

  9. CSU 1598 KMP

    http://acm.csu.edu.cn:20080/csuoj/problemset/problem?pid=1598 给定两个字符串s和t,现有一个扫描器,从s的最左边开始向右扫描,每次扫描到一 ...

最新文章

  1. swift笔记——环境搭建及Hello,Swift!
  2. android GridView item中组件获取焦点
  3. __cplusplus的用处
  4. ORA-01504问题
  5. OpenCV学习:改变图像的对比度和亮度
  6. Beaglebone Black 运行QNX
  7. 基于深度学习的图像语义分割技术概述之4常用方法
  8. dart系列之:dart代码规范实践指南
  9. ehviewer苹果版下载_苹果用户:支持ios的云手机有没有?在哪里下载云手机ios版?...
  10. JavaParser入门:以编程方式分析Java代码
  11. 腾讯3轮面试都问了Android事件分发,原理+实战+视频+源码
  12. 彻底弄懂计算机中的大端小端
  13. Android 按钮选择状态,如何修改Android中的默认按钮状态而不影响按下和选择的状态?...
  14. 阿里天池用Pandas揭秘美国选民的总统喜好附加题
  15. java使用poi读取word(简单,简约,直观)
  16. 数据的提取方法 - 1
  17. winsock2.h与ws2def.h等文件大量报错相关问题解决方法
  18. vs2017安装qt插件及安装qt插件后的设置
  19. 无桥PFC的优势及解决方案
  20. idea @Autowired 飘红

热门文章

  1. 打车/网约车、代驾、顺风车/拼车/快车/专车(含市内和城际)、货运(小程序、APP(安卓/苹果)、公众号、H5网页)
  2. “看到同事 2 万块的笔记本,我认输了”:会说话,才是码农该有的自我修养...
  3. JavaScript中创建对象的步骤
  4. 室外gps+imu小车系列(一)——双天线gps话题的发布
  5. layui.use 中自定义 function 的正确方式
  6. 解决Can not connect to local MySQL server through socket tmpmysql.sock (2)
  7. 威联通ts-532x 篇六 qts5.0注册qnapclub源
  8. 递归学习:写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和;递归实现n的k次方
  9. Maven打包提示dependencies.dependency.systemPath错误
  10. LSTM进行房价预测