题目大意:
输入一个字典,字典格式为 n 行“英语 外语”的对照表。然后是若干个外语单词,让你翻 译,输出它们对应的英语单词。如果字典中不存在这个单词,则输出“eh”。
思路:
- 首先可以先对字典单词排序,然后翻译时二分查找。
- 其次也可以hash。
- 然后就想到可以直接用map,最好写。
AC代码:
#include<iostream>
#include<cstdio>
#include<map>
#include<string>
using std::string;
using std::map;
using std::cin;
using std::cout;
map<string, string>dict;
int main(){
string s1, s2;
char symbol;
const char UNFOUND[3] = "eh";
while(cin>>s1){
symbol = getchar();
if(symbol == ' ') {
cin>>s2;
dict[s2] = s1;
}
else if(!dict.count(s1)){
printf("%s\n", UNFOUND);
}
else {
cout<<dict[s1]<<"\n";
}
}
return 0;
}