【t051】图书管理

来源:互联网 发布:知乎网站 编辑:程序博客网 时间:2024/06/08 04:34

Time Limit: 1 second
Memory Limit: 128 MB

【问题描述】

图书管理是一件十分繁杂的工作,在一个图书馆中每天都会有许多新书加入。为了更方便的管理图书(以便于帮助想要借书的客人
快速查找他们是否有他们所需要的书),我们需要设计一个图书查找系统。
该系统需要支持2种操作
1:add(s) 表示新加入一本书名为s的图书。
2:find(s) 表示查询是否存在一本书名为s的图书。

【输入格式】

第一行包括一个正整数n(n<=10000),表示操作数。
以下n行,每行给出2种操作中的某一个指令条,指令格式为:
add s
find s
在书名s与指令(add,find)之间有一个隔开,我们保证所有书名的长度都不超过200。可以假设读入数据是准确无误的。

【输出格式】

对于每个find(s)指令,我们必须对应的输出一行yes或no,表示当前所查询的书是否存在于图书馆内。注意:一开始时图书馆内是没
有一本图书的。并且,对于相同字母不同大小写的书名,我们认为它们是不同的。

Sample Input

4add Inside C#find Effective Javaadd Effective Javafind Effective Java

Sample Output

noyes
【题解】
用map容器来处理.
即 map <string,int> xx;
即用string类映射一个int类。
xx.count(element)这个东西可以快速查看elemet这个元素是否在xx中。
【代码】
#include <cstdio>#include <map>#include <string>using namespace std; int n,bianhao = 0;char *temp;char *name;map <string,int> dic;int main(){scanf("%d",&n); //输入n个信息 getchar();for (int i = 1;i <= n;i++){temp = new char[10];//用scanf来输入字符串会更快吧。 scanf("%s",temp);  name = new char[1000];scanf("%s",name);string tt = string(name); //然后把书名转成string类。以用来访问这个书名的位置 if (temp[0] == 'a')dic[tt] = ++bianhao; //如果是add的话就把他加入到dic中,并且给它一个编号 else{if (dic.count(tt) == 1) //否则就用map.count(xx),来判断xx是否在map中 printf("yes\n");elseprintf("no\n");}}return 0;}


0 0
原创粉丝点击