//source here #include<iostream> #include<map> #include<string> #include<string.h> using namespace std; int main(){ int m, n; int cases; cin>>cases; for(int t = 0; t < cases; t++){ map<string, string> yingshe; cin>>m>>n; string temp = ""; for(int i = 0; i < n; i++){ cin>>temp; cin>>yingshe[temp]; } string juzi[105]; char duihua[205]; cin.getline(duihua, 10, '\n');//接收当前所在行的尾部结束标记 cin.getline(duihua, 105, '\n'); if(yingshe.empty()){ cout<<"Case #"<<t + 1<<": "<<duihua<<endl; continue; } char delims[] = " "; char *result = NULL; result = strtok( duihua, delims ); int index = 0; while( result != NULL ){ //不会是空字符,所以index至少是1. //故下面不要对index进行合法性检查 juzi[index] = (string)(result); index++; result = strtok( NULL, delims ); } map<string, string>::iterator it; for(int i = 0; i < index; i++){ for(int j = 0; j < m - 1; j++){ it = yingshe.find(juzi[i]); if(it != yingshe.end()){ juzi[i] = yingshe[juzi[i]]; }else{ break; } } } cout<<"Case #"<<t + 1<<": "; for(int i = 0; i < index - 1; i++){ cout<<juzi[i]<<" "; } cout<<juzi[index - 1]<<endl; } //system("pause"); return 0; }
微软编程之美2013全国挑战赛 资格赛 第1题
最新推荐文章于 2020-05-15 19:05:07 发布
本文介绍了一个使用C++实现的映射替换程序示例,该程序通过标准输入读取一系列字符串及其替换规则,并根据这些规则对输入的句子进行词汇替换。程序使用了C++标准库中的map容器来存储映射关系。
1308

被折叠的 条评论
为什么被折叠?



