输入:
包含多组测试数据,对于每组测试数据:
第一行输入两个正整数,空格隔开,需要进行映射的命令的数目N和进行调试时发送的语音指令条数M(1<N<1000,1<M<1000)
接下来N行,每行输入两个字符串表示语音指令和对应的动作cmd和action,以空格隔开,每个字符串的长度小于1000,且只有大小写字母;
最后M行,每行输入一个字符串表示需要进行调试的语音指令。
输出:
对于每组测试数据;
输出M行,根据调试的语音指令输出对应的动作指令action
样例输入:
4 4
ZuoZhuan TurnLeft
youzhuan turnright
qianjin forward
houtui backward
ZuoZhuan
qianjin
qianjin
houtui
1 1
SDFk LNCs
SDFk
样例输出:
TurnLeft
forward
forward
backword
LNCs
核心代码如下:
#include <vector>
#include <iostream>
#include <map>
#include <string>
#include <sstream>
using namespace std;
int main()
{
int n, m; //命令条目和语音指令条数
int x, y; //命令条目和语音指令条数
map<string, string> mapstr1;
map<string, string> mapstr2;
vector<string> vec1;
vector<string> vec2;
//第一次
cin >> n >> m;
for(int i = 0; i < n; i++){
string str1, str2;
cin >> str1 >> str2;
mapstr1[str1] = str2;
}
for(int i = 0; i < m; i++){
string str3;
cin >> str3;
vec1.push_back(str3);
}
//第二次
cin >> x >> y;
for(int i = 0; i < x; i++){
string str1, str2;
cin >> str1 >> str2;
mapstr2[str1] = str2;
}
for(int i = 0; i < y; i++){
string str3;
cin >> str3;
vec2.push_back(str3);
}
for(int j = 0; j < m; j++){
map<string, string>::iterator it;
it = mapstr1.find(vec1[j]);
cout << it->second <<endl;
}
for(int j = 0; j < y; j++){
map<string, string>::iterator it;
it = mapstr2.find(vec2[j]);
cout << it->second <<endl;
}
return 0;
}