列表

详情


NC50272. 图书管理

描述

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

输入描述

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

输出描述

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

示例1

输入:

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

输出:

no
yes

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++14(g++5.4) 解法, 执行用时: 257ms, 内存消耗: 4176K, 提交时间: 2019-11-17 19:16:52

#include<bits/stdc++.h>
using namespace std;

int main() {
  int n; cin >> n;
  set<string> S;
  while (n--) {
    string op; cin >> op;
    string s; getline(cin, s);
    if (op == "add") S.insert(s);
    else cout << (S.count(s)?"yes":"no") << endl;
  }
}

Python3 解法, 执行用时: 160ms, 内存消耗: 7620K, 提交时间: 2022-06-18 21:07:25

n = int(input())
mmap = {}
for i in range(n):
    s = input()
    ss = s.split()
    if ss[0] == "add":
        mmap[s[4:]] = 1
    elif ss[0] == "find":
        if s[5:] not in mmap.keys():
            print('no')
        else:
            print('yes')

C++11(clang++ 3.9) 解法, 执行用时: 182ms, 内存消耗: 4200K, 提交时间: 2020-03-05 12:58:18

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	cin>>n;
	set<string> S;
	while(n--)
	{
		string op;
		cin>>op;
		string s;
		getline(cin,s);
		if(op=="add") S.insert(s);
		else cout<<(S.count(s)?"yes":"no")<<endl;
	}
}

上一题