PKU ACM Babelfish http://acm.pku.edu.cn/JudgeOnline/problem?id=2503

这道题是用map容器解决的,对于map容器我一点都不熟悉,在队友的帮助下通过了n遍的修改才被ac,虽然代码很短,但是要解决实际问题确实要注意很多问题,特别是细节问题往往让我们在某一点上卡壳;通过这道题感觉学到了不少,希望与我同级别的菜鸟选手去做一做。下面我展示我的long long time(惭愧惭愧啊!)代码,并对它作注:

#include <iostream>
#include <map>
#include <string> //用字符串整体输入
using namespace std;
int main()
{
map<string,string> mymap;   //建立map的一个对象,它两个元素都是string类型的
string a,b,d;
while (1)
{
   d = getchar();    //对即将输入的str取首字母;注意次语句不能在cin之后;
   if ( d == "\n" )   //当输入的是一行空串时跳出循环;
    break; 
   cin >> a>> b ;
   a = d + a;   //getchar()函数调用后str的首字母被抓取,必须用把抓取的和后面字母再组;map重载了+法运算,所以可以直接相加;
   mymap[b]=a;   //容器以字母或字符串为下标,就跟数组一样,输入下标字符串就有相应的值与之相对应
    getchar();
}
string c;
while ( cin >> c )
{
   if ( mymap[c] == "" ) //在map容器中没有查找到的表示方法;
    cout<<"eh"<<endl;
   else
    cout<<mymap[c]<<endl;
}
return 0;
}

posted on 2011-05-06 19:20  _Clarence  阅读(161)  评论(0编辑  收藏

导航