C
link
我们可以把所有字母都存上,代表换到最后这个字母换成什么了,当然最开始就是它本身。
那么,把\(c\)改成\(d\)的时候,就只要把所有等于\(c\)的都改成\(d\)就行了。
点击查看代码
#include<bits/stdc++.h>
using namespace std;
int n,q;
char s[200005];
int a[30];
signed main(){
cin >> n >> s+1 >> q;
for(int i = 0;i < 26;++ i) a[i] = i;
for(int i = 1;i <= q;++ i){
char c,d;
cin >> c >> d;
for(int j = 0;j < 26;++ j)
if(a[j] == c-'a') a[j] = d-'a';
}
for(int i = 1;i <= n;++ i)
s[i] = a[s[i]-'a']+'a';
cout << s+1;
return 0;
}