Your task is to write a program of a simple dictionary which implements the following instructions:
insert str: insert a string str in to the dictionary
find str: if the distionary contains str, then print ‘yes’, otherwise print ‘no’
Input
In the first line n, the number of instructions is given. In the following n lines, n instructions are given in the above mentioned format.
Output
Print yes or no for each find instruction in a line.
Constraints
A string consists of ‘A’, ‘C’, ‘G’, or ‘T’
1 ≤ length of a string ≤ 12
n ≤ 1000000
Sample Input 1
5
insert A
insert T
insert C
find G
find A
Sample Output 1
no
yes
Sample Input 2
13
insert AAA
insert AAC
insert AGA
insert AGG
insert TTT
find AAA
find CCC
find CCC
insert CCC
find CCC
insert T
find TTT
find T
Sample Output 2
yes
no
no
yes
yes
yes
写一个简易字典,输入中给字典插入字符串,然后有查找,如果找到便输出yes,找不到输出no
没看书本上的解题,第一步想的就是STL里面的vector+find函数,虽然猜到会超时,但先走一遍。
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
vector<string> a;
string tmp;
int main() {
int n; cin >> n;
while (n--) {
cin >> tmp;
if (tmp[0] == 'i') {
cin >> tmp;
a.push_back(tmp);
}
else {
cin >> tmp;
vector<string>::iterator it;
it = find(a.begin(), a.end(), tmp);
if (it != a.end())
cout << "yes" << endl;
else
cout << "no" << endl;
}
}
}
果然没有ac全,只过了九个测试点,这题的话思考一下可以考虑使用散列查找。
废江博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Dictionary