字符替换

Description

 

给定一个字符串,其长度为n。接下来对这个字符串进行m次操作,每次操作都有两个字符x和y,请将该字符串中的x字符换为y字符,

将该字符串中的y字符换为x字符。请你输出m次操作后的字符串。

 

Input

 

输入第一行为一个n和m。第二行为字符串。接下来有m行,每行有两个字符。

(1<=n,m<=200000,所有字符都为小写字母)

 

Output

 

输出m次操作后的字符串

 

Sample Input 1 

3 4
abc
a a
b a
c a
a c

Sample Output 1

bac
/*
    头晕啊
    知识点:模拟加思维
*/
#include<bits/stdc++.h>
using namespace std;
const int N = 200000+10;
char ss[N], parent[26];
int main(){
    int n, m;
    char x[2], y[2];
    scanf("%d%d", &n, &m);
    scanf("%s", ss);
    for(int i=0; i<26; ++i)parent[i]='a'+i;
    for(int i=0; i<m; ++i){
        scanf("%s%s", x, y);
        for(int i=0; i<26; ++i){
            if(x[0] == y[0])break;
            if(parent[i] == x[0]){
                parent[i] = y[0];
                continue;
            }
            if(parent[i] == y[0]){
                parent[i] = x[0];
                continue;
            }
        }
    }
    for(int i=0; i<n; ++i)printf("%c", parent[ss[i]-'a']);
    printf("\n");
    return 0;
}

  方向错了   再怎么想都没用 ~~~~~~

posted @ 2019-12-18 10:34  流照君  阅读(301)  评论(0编辑  收藏  举报