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; }