Problem C: STL-C
Time Limit: 6 Sec Memory Limit: 128 MBSubmit: 81 Solved: 25
Description
averyboy是一个非常男孩,现在他手里有一本字典。刚开始,这本字典空的。现在有两种操作,第一种操作是向这个字典里面插入一个单词,第二种操作是查找一个单词是否在这本词典中,如果在,则输出yes,反之输出no
Input
第一行为一个整数T(T <= 3)代表测试数据的组数
接下来T组测试数据
每组测试数据的第一行为一个整数N(N <= 100000)代表操作的总数
接下来N行,每一行格式如下op token,其中op为1或2,token代表是一个单词,如果op为1,代表向字典种插入单词token,如果op为2,代表询问字典种是否存在单词token.如果存在输出yes,不存在输出no。
接下来T组测试数据
每组测试数据的第一行为一个整数N(N <= 100000)代表操作的总数
接下来N行,每一行格式如下op token,其中op为1或2,token代表是一个单词,如果op为1,代表向字典种插入单词token,如果op为2,代表询问字典种是否存在单词token.如果存在输出yes,不存在输出no。
Output
对于询问操作,输出yes或者no
![](https://i-blog.csdnimg.cn/blog_migrate/a41788c672134188d53f642ca7b94367.png)
解答
#include <iostream>
#include <set>
#include <string>
using namespace std;
set<string>st;
int main()
{
int T,N,op;
string token;
cin>>T;
while(T--)
{
cin>>N;
while(N--)
{
cin>>op>>token;
if(op==1) st.insert(token);
if(op==2)
{
if(st.find(token)!=st.end()) cout<<"yes"<<endl;
else cout<<"no"<<endl;
}
}
st.clear();
}
return 0;
}