@xunuo
2017-01-18T13:31:38.000000Z
字数 811
阅读 1364
Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u
暴力
有一个长度为n的只包含小写字母的字符串s,有m次操作,每次输入2个字符A , B表示将s中的全部字符A变成B,B变成A
第一行整数n,m(1<=n<=200000;1<=m<=200000),第二行一个长度为n的字符串,下来m行每行2个字符A B(A,B是26个小写字母中的任意一个)
经过m次操作后的字符串s
6 1
police
p m
molice
11 6
abacabadaba
a b
b c
a d
e g
f a
b b
cdcbcdcfcdc
完整代码:
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;char a[200010],b[200010],c[30];int main(){memset(a,0,sizeof(a));//8到10行可不用memset(b,0,sizeof(b));memset(c,0,sizeof(c));int n,m;while(scanf("%d%d",&n,&m)!=EOF){c[0]='a';for(int i=0;i<26;i++){c[i]=c[0]+i;}char c1[2],c2[2];scanf("%s",a);for(int i=0;i<m;i++){scanf("%s%s",c1,c2);for(int j=0;j<26;j++){if(c[j]==c1[0])c[j]=c2[0];else if(c[j]==c2[0])c[j]=c1[0];}}for(int i=0;i<n;i++)b[i]=c[a[i]-'a'];printf("%s\n",b);}return 0;}
