POJ 2503 Babelfish(map入門)
阿新 • • 發佈:2018-02-25
pro getc scan appear std 出現 elf map stream
題目鏈接:http://poj.org/problem?id=2503
代碼:
#include<cstdio> #include<string> #include<map> #include<iostream> using namespace std; int main(void){ char english[11],foreign[11]; map<string,bool>appear; //記錄foreign與english的配對映射是否出現 map<string,string>translate; //記錄foreign到english的映射 char ch; while((ch=getchar())!=‘\n‘){ english[0]=ch; scanf("%s%s",english+1,foreign); appear[foreign]=true; translate[foreign]=english; getchar(); } char word[11]; while(~scanf("%s",word)){ if(appear[word]) cout<<translate[word]<<endl;else puts("eh"); } return 0; }
另附一個大神的做法:https://www.cnblogs.com/shenben/p/5619304.html
雖然運行很慢(我的做法的2倍),不過思路很直接。
#include<cstdio> #include<cstring> #include<string> #include<iostream> #include<map> using namespace std; map<string,string>m; char s[30],x[11],y[11]; int main(){ while(1){ gets(s); if(s[0]==‘\0‘) break; sscanf(s,"%s %s",x,y);//分割 m[y]=x; } while(gets(y)){ if(m[y]=="") cout<<"eh"<<endl; else cout<<m[y]<<endl; } return 0; }
POJ 2503 Babelfish(map入門)