Problem C: Babelfish
解题思路:这题简单题,放在这个章节里是因为lrj想让你用哈希过的,但是我却开始用STL里面的内容混过去的,用了map,学会了怎样将字符数组转换成字符串
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<string> 5 #include<map> 6 #include<algorithm> 7 using namespace std; 8 map<string, string> dic; 9 int main(){ 10 #ifndef ONLINE_JUDGE 11 freopen("input.txt", "r", stdin); 12 #endif 13 char input[100]; 14 bool flag = false; 15 while(fgets(input, 100, stdin) != NULL){ 16 int len = strlen(input); 17 if(len == 1){ 18 flag = true; 19 continue; 20 } 21 else if(input[len-1] == '\n') input[len-1] = '\0'; 22 if(flag == false){ 23 char left[12], right[12]; 24 sscanf(input, "%[^ ]", left); 25 sscanf(input, "%*s%s", right); 26 string _left(&left[0], &left[strlen(left)]); 27 string _right(&right[0], &right[strlen(right)]); 28 dic.insert(make_pair(_right, _left)); 29 } 30 else{ 31 32 string _input(&input[0], &input[strlen(input)]); 33 map<string, string>::const_iterator i = dic.find(_input); 34 if(i != dic.end()) 35 cout<<i->second<<endl; 36 else cout<<"eh"<<endl; 37 } 38 } 39 return 0; 40 }