• 【t051】图书管理


    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

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

    Sample Output

    no
    yes
    
    【题解】
    用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
    ");
    									else
    										printf("no
    ");
    						}
    					
    		}
    	return 0;	
    }


  • 相关阅读:
    React父组件调用子组件
    ES6数组操作
    ant design mobile入坑记
    vue
    图片上传七牛
    CSS
    CSS矩形、三角形等
    使用POST下载文件
    http https协议
    前端网络必备知识
  • 原文地址:https://www.cnblogs.com/AWCXV/p/7632353.html
Copyright © 2020-2023  润新知