您的位置:首页 > 其它

POJ 2503 Babelfish(map)

2015-07-11 09:17 423 查看
Description

输入一个字典,字典格式为“英语 外语”的一一映射关系,然后输入若干个外语单词,输出他们的 英语翻译单词,如果字典中不存在这个单词,则输出eh

Input

首先输入一个字典,以空行结束,字典每行两个单词表示英语与外语的一一对应关系,之后是多组查询,每组查询一个外语,以文件尾结束输入

Output

对于每组查询,若字典中存在这个单词则输出其对应的外语,否则输出eh

Sample Input

dog ogday

cat atcay

pig igpay

froot ootfray

loops oopslay

atcay

ittenkay

oopslay

Sample Output

cat

eh

loops

Solution

水题,输入时顺便用STL的map标记外语是否出现过,然后再用map建立“外语 英语”的映射,那么输出时先查找“出现”的标记,若有出现过,再输出映射,否则输出“eh”。

Code

#include<cstdio>
#include<cstring>
#include<iostream>
#include<string>
#include<map>
using namespace std;
int main()
{
map<string,string>M;
string s1,s2,s;
char str[15];
while(gets(str)&&strlen(str))//字典输入结束条件
{
s1=s2="\0";
int i;
for(i=0;;i++)
if(str[i]==' ')
{
str[i]='\0';
break;
}
s1+=str;//英语
s2+=str+i+1;//外语
M[s2]=s1;//外语-英语的映射
}
while(cin>>s)//查询输入结束条件
{
if(M[s].size())//字典中存在该单词
cout<<M[s]<<endl;
else//字典中不存在该单词
cout<<"eh"<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: