g2g c u l8r(训练赛)
题意:输入一系列缩写,再输入句子,输出把缩写替换掉的完整句子。
题解:就是解决上面的问题。录入时采用getlin(cin,s),记得加头文件#include<string>。建立缩写和句子之间的关系用map进行记录。处理输入句子有两种方法。
accode1:
int main()
{
int n;
string a[1000],b[1000];
map<string,string>q;
map<string,int>q1;
cin>>n; getchar();
for(int i=0; i<n; i++)
{
cin>>a[i];
getchar();
getline(cin,b[i]);
q[a[i]]=b[i];//记录输入字符串
q1[a[i]]=1;//记录字符串是否有缩写
}
int t;
cin>>t;
getchar();
while(t--)
{
string s,e;
while(cin>>s)
{
char o=getchar();//判断输入完单词后是空格还是回车
if(q1[s]==0)
cout<<s<<' ';
else cout<<q[s]<<' ';
if(o=='\n')
break;
}
cout<<endl;
}
return 0;
}
accode2:
int main(){ int n, m; cin >> n; string a, b, c; map<string, string>p; while (n--) { cin >> a; getchar(); getline(cin, b); p[a] = b; } cin >> m; while (m--) { while (cin >> c) { char ch = getchar(); if (p.find(c) == p.end())//使用map函数进行 cout << c << " "; else cout << p[c] << " "; if (ch == '\n') cout << endl; } } return 0;}
浙公网安备 33010602011771号