01.#include <iostream>
02.#include <string>
03.
04.using namespace std;
05.
06.int main ()
07.{
08. int n;
09. while(cin>>n&&n)
10. {
11. cin.get();
12. string s[n],t[n];
13. for(int i = 0; i < n; i++)
14. {
15. getline(cin,s[i]);
16. getline(cin,t[i]);
17. }
18. string st;
19. getline(cin,st);
20. int len = st.size();
21. for(int j = 0; j < n; j++)
22. {
23. for(int i = 0; i < len; i++)
24. {//cout<<s[j][0]<<" "<<st[i]<<endl;
25. if(s[j][0]!=st[i])continue;
26. else
27. {
28. int f = 0;
29. int l = s[j].size();
30. for(int k = 0; k < l; k++)
31. {//
32. if(s[j][k]!=st[k+i])break;
33. if(k == l - 1)f = 1;
34. }
35. if(f)
36. {
37. //cout<<s[j]<<"->"<<t[j]<<endl;
38. st.replace(i,l,t[j]);
39. len = st.size();需要斟酌之处!!!
40. //cout<<st<<endl;
41. i = 0;
42. }
43. }
44. }
45. }
46. cout<<st<<endl;
47. }
48. return 0;
49.}
50.
51.注:此题WA的原因是自己没考虑到,字符串扩充后长度的变化,致使i的范围没有得到扩充。
UVA10115-自动编辑
最新推荐文章于 2021-11-12 19:37:56 发布