关于「一本通 2.1 例 2」图书管理的答案(小白不一定对)

这篇文章详细描述了如何用C++编写一个简单的图书管理系统,使用set数据结构来存储和查找图书,支持add和find功能。
摘要由CSDN通过智能技术生成

题目:

这里给大家奉上题目:

题目描述

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

输入

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

输出

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

样例输入 
4
add Inside C#
find Effective Java
add Effective Java
find Effective Java
样例输出 
no
yes
提示


数据范围:n≤30000

答案:

答案:

(小白答案,如有问题,欢迎指正)

#include<iostream>
#include<string>
#include<map>
#include<set>
using namespace std;
set<string> st;               //定义一个set来储存书名
int main(){
    ios::sync_with_stdio(false);   //输入加速
    cin.tie(0); cout.tie(0);       //输入加速(可以不要)
    int n;                         //定义变量n,用来表示进行操作的次数
    cin>>n;                        //输入
    for(int i=1;i<=n;i++){         //循环n次,开始操作
        string s;                  //定义一个字符串s,代表做什么操作
        cin>>s;                    //输入s
        if(s=="add"){              //判断一下s代表哪个操作
            string k;              //如果是"add",就添加一本书进来,k表示书名
            getline(cin,k);        //发现书名有空格,于是使用getline(cin,k);
            st.insert(k);          //往set里面放入这本书
        }else{                 //如果为"find"
            string k;              //同样定义一个k
            getline(cin,k);        //同上
            if(st.count(k)!=0) cout<<"yes"<<endl;  //如果这本书的名字在set中存在,则输入"yes"
            else cout<<"no"<<endl;    //反之输出"no"
        }
    }
    return 0;            //程序结束
}
思路:

见注释

小白作业,不咋地,看看就行

  • 13
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值