随笔—邀请赛前训—Codeforces Round #327 (Div. 2) Rebranding

题意:一个字符串,做n次变换,每次变换是把a字符与b字符全部调换。求全部调换完成后的字符串。

 

这道题目我一开始理解错意思了,理解成将所有a字符变成b字符,我觉得这样出貌似还更有挑战性一点。。口亨

 

#include<cstdio>
#include<cstring>
#include<map>
#include<iostream>

using namespace std;

#define  MAX(x,y) (((x)>(y)) ? (x) : (y))
#define  MIN(x,y) (((x) < (y)) ? (x) : (y))
#define ABS(x) ((x)>0?(x):-(x))

const int inf = 0x7fffffff;
char src[200000];

map <char,char> p;

int main()
{
    for(char i='a'; i<=122; i++){
        p[i]=i;
    }
    

    char left,right;
    int n, m;
    cin>>n>>m;
    cin>>src;
    getchar();
    char x,y;
    for(int j=0;j<m;j++){
        scanf("%c %c",&left,&right);
        getchar();
        for(char i='a'; i<=122; i++){
            if(p[i]==left)
                x=i;                //找到目前是left的
            if(p[i]==right)
                y=i;                //找到目前是right的
        }
        p[x]=right;
        p[y]=left;
    }
    for(int i=0; src[i]; i++){
        cout<<p[ src[i] ];
    }


   // for(char i='a'; i<=122; i++){
   //     cout<<p[i];
   // }
    return 0;
}

 

posted @ 2016-05-29 12:07  Shawn_Ji  阅读(190)  评论(0编辑  收藏  举报