Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀).

Input输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串.

注意:本题只有一组测试数据,处理到文件结束.
Output对于每个提问,给出以该字符串为前缀的单词的数量.
Sample Input

banana
band
bee
absolute
acm ba
b
band
abc

Sample Output

2
3
1
0 题意: 输入以该字符串为前缀的单词的数量。 注意输入:

scanf 以空格、换行符结束输入;

scanf()以Space、Enter、Tab结束一次输入,不会舍弃最后的回车符(即回车符会残留在缓冲区中)

gets 是读取换行符的,不过它会把换行符转换为'\0'

gets读入以任何字符开始的字符串,以换行符结束,但之后会丢弃换行符并以'\0'代替;

在数据大量的情况下,用gets读取快于scanf()10倍以上

scanf不能接受空格、制表符Tab、回车等;

而gets能够接受空格、制表符Tab和回车等。将接收输入的整个字符串直到遇到换行为止。

 #include<stdio.h>
#include<map>
#include<iostream>
#include<string.h>
using namespace std;
typedef long long ll;
const int x=;
const int N=1e6+;
ll book[N]; map<string,ll>mp;
char a[]; int main()
{
//string a;
while()
{
// cin>>a;
gets(a);
// if(a[0]=='\0')
// break;
int len=strlen(a);
if(len==)
break;
string s;
s.clear();
for(int i=;i<len;i++)
{
// sum=sum*x+a[i];
s+=a[i];
mp[s]++;
}
} while(cin>>a)
cout<<mp[a]<<endl;
return ;
}

最新文章

  1. YYModel 源码解读(二)之NSObject+YYModel.h (3)
  2. react-native ListView使用详解
  3. 用PHP解析类JSON字符串为数组的实现
  4. Knockoutjs 实践入门 (3) 绑定数组
  5. [IIS]IIS扫盲(七)
  6. 使用XHTML+CSS构架的好处到底有哪些?
  7. OC基础(21)
  8. Android:仿微信开场切换界面
  9. shell脚本ssh自动登陆服务器
  10. 新手介绍简单一下iOS开发中几种界面传值
  11. 关于数据库优化1——关于count(1),count(*),和count(列名)的区别,和关于表中字段顺序的问题
  12. Dora.Interception,为.NET Core度身打造的AOP框架:全新的版本
  13. Space Golf~物理题目
  14. 07--STL序列容器(Array)
  15. 设计模式C++学习笔记之六(Facade门面模式)
  16. 学习Selenium的历程
  17. linux服务器ssh防爆破
  18. spring cloud(二)服务(注册)中心Eureka
  19. 想高效学会Hadoop,你要按照这个路线
  20. java生产条形码

热门文章

  1. 解决让刷新页面时不提示 &quot;重试或取消”对话框
  2. jsbridge 原理
  3. 深入理解__proto__ 、constructor和prototype的关系
  4. CSS深入理解line-height
  5. MySQL分表备份
  6. 用MR生成HFile文件格式后,数据批量导入HBase
  7. ThinkPHP3.2.3 目录介绍
  8. python基础--二分查找
  9. Vue-基础(一)
  10. MyEclipse更换工作空间报错自动退出