[关闭]
@xunuo 2017-01-18T21:31:38.000000Z 字数 811 阅读 1016

D - D

Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u

暴力


Description

有一个长度为n的只包含小写字母的字符串s,有m次操作,每次输入2个字符A , B表示将s中的全部字符A变成B,B变成A

Input

第一行整数n,m(1<=n<=200000;1<=m<=200000),第二行一个长度为n的字符串,下来m行每行2个字符A B(A,B是26个小写字母中的任意一个)

Output

经过m次操作后的字符串s

Sample Input

Input

6 1
police
p m

Output

molice

Input

11 6
abacabadaba
a b
b c
a d
e g
f a
b b

output

cdcbcdcfcdc

完整代码:

  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<algorithm>
  4. using namespace std;
  5. char a[200010],b[200010],c[30];
  6. int main()
  7. {
  8. memset(a,0,sizeof(a));//8到10行可不用
  9. memset(b,0,sizeof(b));
  10. memset(c,0,sizeof(c));
  11. int n,m;
  12. while(scanf("%d%d",&n,&m)!=EOF)
  13. {
  14. c[0]='a';
  15. for(int i=0;i<26;i++)
  16. {
  17. c[i]=c[0]+i;
  18. }
  19. char c1[2],c2[2];
  20. scanf("%s",a);
  21. for(int i=0;i<m;i++)
  22. {
  23. scanf("%s%s",c1,c2);
  24. for(int j=0;j<26;j++)
  25. {
  26. if(c[j]==c1[0])
  27. c[j]=c2[0];
  28. else if(c[j]==c2[0])
  29. c[j]=c1[0];
  30. }
  31. }
  32. for(int i=0;i<n;i++)
  33. b[i]=c[a[i]-'a'];
  34. printf("%s\n",b);
  35. }
  36. return 0;
  37. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注