题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1251

题意不难理解,就是先输入不知道多少个字符串,然后用一个空行结束这个输入,然后接下来不知道多少行再输入一些字符串,询问上面输入的字符串中,以该字符串为前缀的字符串的个数。

但是实现起来并不简单,首先要考虑如何输入(让第一部分的字符串在输入空行之后停止读入),然后还要考虑如何用map来标记前缀的个数。

实现:用gets()读入字符串(不能用cin>>,因为cin>>不接收空行),当某个字符串的长度为0的时候,即表示该字符串为空行,第一部分读入完毕。每次读入一个字符串,用map来记录这个字符串中从长度为1~l的字符串的个数(从后往前记录,先记录完整的字符串,然后把最后一位变成'\0',以此类推)。最后依次输入需要询问的字符串,输出出现的次数就可以了

#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <math.h>
#include <limits.h>
#include <map>
#include <stack>
#include <queue>
#include <vector>
#include <set>
#include <string>
#define ll long long
#define ms(a) memset(a,0,sizeof(a))
#define pi acos(-1.0)
#define INF 0x3f3f3f3f
const double E=exp(1);
const int maxn=1e6+10;
using namespace std;
int main(int argc, char const *argv[])
{
char ch[20];
map<string,int>mmp;
int flag=0;
while(gets(ch))
{
int l=strlen(ch);
if(l==0)
{
flag++;
break;
}
for(int i=l;i>0;i--)
{
ch[i]='\0';
mmp[ch]++;
}
}
string s;
while(cin>>s)
{
cout<<mmp[s]<<endl;
}
return 0;
}

最新文章

  1. C#语言基础-类——string增加内容
  2. 页面切换语言包使用session不用cookie
  3. C++中 接口的定义 COM
  4. 介绍开源的.net通信框架NetworkComms框架 源码分析(十五 ) CommsThreadPool自定义线程池
  5. 2014 Super Training #7 E Calculate the Function --矩阵+线段树
  6. 第12章 纤程(Fiber)
  7. Mysql的主从数据库没有同步的解决办法
  8. ASSER、VERIFY、TRACE详解
  9. CentOS7下源码安装mysql5.6
  10. bash及其特性(笔记)
  11. CVPapers论文整理工具-开源
  12. div.2/D. As Fast As Possible&lt;数学题,二分&gt;
  13. 将数据的初始化放到docker中的整个工作过程(问题记录)
  14. 学习python之路_入门篇A
  15. Alpha阶段小结
  16. ios外派公司—提供ios程序员外派ios应用外包业务(北京动点 可签合同)
  17. ELK之filebeat
  18. JavaScript进阶系列04,函数参数个数不确定情况下的解决方案
  19. PHP中间件--ICE
  20. Mongodb操作之查询(循序渐进对比SQL语句)(转http://www.tuicool.com/articles/UzQj6rF)

热门文章

  1. Android中getLocationOnScreen和getLocationInWindow 获取屏幕大小
  2. C#一套简单的单例系统
  3. nginx File not found 错误
  4. php入门之数据类型
  5. 多个 CancellationTokenSource 复合(组合) 或 C# 使用 CancellationTokenSource 终止线程
  6. GetContent
  7. 20170711xlVBA批量制图一例
  8. 插件Vue.Draggable(5000&#127775;)
  9. hdu-2897-巴什博弈
  10. UVA-11149 Power of Matrix(矩阵二分幂)