NC50272. 图书管理
描述
输入描述
第一行包括一个正整数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; } }