题目思路:用STL中的map
学到的东西 string的迭代器是auto ,一整行的输入getline(cin,string)
代码:
#include <bits/stdc++.h>
using namespace std;
int main() {
string start1;cin>>start1;
string x,y;
map<string, string> m;
while (true) {
cin>>x;
if (x=="END") {
break;
}
cin>>y;
m[y]=x;
}
string start2;
getline(cin,start2);//吸收\n
string sentences="";
while (true) {
string line;getline(cin,line);
if (line=="START") continue;
if (line=="END") break;
string words="";
for (auto i =line.begin();i!=line.end();i++) {
if (isalpha(*i)) words+=*i;
else {
if (words!="") {
if(m.count(words)) sentences+=m[words];
else sentences+=words;
}
sentences+=*i;//句子加上非字母的
words.clear();//清空words
}
}
if (words!="") {//处理最后以单词结尾的
if(m.count(words)) sentences+=m[words];
else sentences+=words;
}
sentences+='\n';
}
cout<<sentences;
}