1. 程式人生 > >POJ 2503 Babelfish(map入門)

POJ 2503 Babelfish(map入門)

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入門)