题目描述
有两种操作:
- 给一个名字为s的人标号x,
- 查询名字为s的人的标号。
不保证所有数不相同,不保证操作2所查询的人一定存在。
输入描述
输入一个n,表示接下来有n种操作,
接下来n行每行一个数op,一个字符串s,
若op=1,则之后再跟一个数x,表示你要将名字为s的人标号为x,
若op=2,则你需要输出名字为s的人的标号。
输出描述
对于每个操作2输出一行,
如果不存在这个人,输出”Not found.”(不含双引号),
如果存在,则输出这个人的标号。
样例输入
10 2 cqszhwgywo 1 uqhlayolko 286241036 2 gdielmpguw 2 uqhlayolko 1 lturzllzrj 241550001 1 zkbvujvncb 674852961 1 wogdltbior 236413121 1 bccgbnbzzm 622686621 1 uckgjjyume 415730509 2 lturzllzrj
样例输出
Not found. Not found. 286241036 241550001
数据范围
|s|为字符串s的长度
n=100000, |s|=10, 1 ≤ x ≤ 1000000000
时空限制
1s, 512M
思路:
先输入,循环n次
判断是1还是0
是1就存起来
是0就判断是否存在号码
输出号码或Not found
#include
#include
#include
using namespace std;
map<string, int> mp;
int main() {
int n;
scanf(“%d”,&n);
while(n--)
{
int op;
scanf("%d",&op);
if(op==1)
{
string s;
int x;
cin>>s>>x;
mp[s]=x;
}
else
{
string s;
cin>>s;
if(mp[s]!=0)
{
cout<<mp[s]<<endl;
}
else
{
printf("Not found.\n");
}
}
}
return 0;
}