Description
You have just moved from Waterloo to a big city. The people here speak an incomprehensible dialect of a foreign language. Fortunately, you have a dictionary to help you understand them.
Input
Input consists of up to 100,000 dictionary entries, followed by a blank line, followed by a message of up to 100,000 words. Each dictionary entry is a line containing an English word, followed by a space and a foreign language word. No foreign word appears more than once in the dictionary. The message is a sequence of words in the foreign language, one word on each line. Each word in the input is a sequence of at most 10 lowercase letters.
Output
Output is the message translated to English, one word per line. Foreign words not in the dictionary should be translated as "eh".
Sample Input
dog ogday cat atcay pig igpay froot ootfray loops oopslay atcay ittenkay oopslay
Sample Output
cat eh loops
题意:实现单词的翻译
先给你字典 然后给你单词 让你翻译成另外一种语言 字典中不存在是 输出eh
用hash判断是否存在 用map保存字典
ac代码:
//Memory Time
//17344K 1563MS
#include<iostream>
#include<string>
#include<map>
using namespace std;
int main(void)
{
char english[11],foreign[11];
map<string,bool>appear; //记录foreign与engliash的配对映射是否出现
map<string,string>translate; //记录foreign到engliash的映射
/*Input the dictionary*/
while(true)
{
char t; //temporary
if((t=getchar())=='\n') //判定是否输入了空行
break;
else //输入english
{
english[0]=t;
int i=1;
while(true)
{
t=getchar();
if(t==' ')
{
english[i]='\0';
break;
}
else
english[i++]=t;
}
}
cin>>foreign;
getchar(); //吃掉 输入foreign后的 回车符
appear[foreign]=true;
translate[foreign]=english;
}
/*Translate*/
char word[11];
while(cin>>word)
{
if(appear[word])
cout<<translate[word]<<endl;
else
cout<<"eh"<<endl;
}
return 0;
}
我的代码:
#include<iostream>
#include<map>
#include<cstdio>
using namespace std;
int main()
{
map<string,string>translate;
map<string,bool>dis;
while(true)
{
char t = getchar();
if(t == '\n')
break;
else
{
char english[15];
char other[15];
english[0] = t;
for(int i = 1;;i++)
{
t=getchar();
if(t == ' ')
break;
else
english[i] = t;
}
cin>>other;
dis[other] = true;
translate[other] = english;
getchar();
}
}
char word[15];
while(cin>>word)
{
if(dis[word] == true)
cout<<translate[word]<<endl;
else
cout<<"eh"<<endl;
}
return 0;
}
我的过不了编译 不知道问题出在哪里....