输入规格
输入包括最多100,005个字典条目,后面是空行,后面是最多100,005个字的消息。每个字典条目是包含英语单词的行,后面是空格和FatMouse单词。没有FatMouse字在字典中出现不止一次。消息是FatMouse语言中的一系列单词,每行一个单词。输入中的每个字是最多10个小写字母的序列。
输出规格
输出是消息翻译成英语,每行一个字。FatMouse字不在字典中应该翻译为“eh”。
Sample Input
dog ogday cat atcay pig igpay froot ootfray loops oopslay atcay ittenkay oopslay
Output for Sample Input
cat eh loops
解题思路:没学map之前一直觉得能用最基本的知识做出来但是花了将近一上午的时间到最后输出中不知道哪里凭空多出来一个单词就是去不掉,然后就放弃了,学了map以后做这种题还是很简单的,整体输入以后,然后把空格作为分隔符将两个字符串分开,然后把要查询的关键字作为下标,要输出的值作为相应的值,然后直接出入查询就可以。
代码如下:
#include <bits/stdc++.h>
using namespace std;
int main()
{ int i;
map<string,string>c;
string a,d,s1,s2;
while(getline(cin,a))
{ if(a=="")
break;
s1=s2="\0";
for(i=0;a[i]!=' ';i++)
s1+=a[i];
for(i++;i<a.size();i++)
s2+=a[i];
c[s2]=s1;
}
while(cin>>d)
{ if(c[d]!="")//判断输入查询的值是否为空
cout<<c[d]<<endl;
else
cout<<"eh"<<endl;
}
return 0;
}
回顾:在没有相应的知识点作为基础的情况下有时候想做出一道题真的很难,还得需要多看书尽量的充实自己在这样的前提下再去刷题才能有进步。