zoukankan      html  css  js  c++  java
  • HUAS_ACM 个人训练#2 C

       题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=117538#problem/C

    题目大意:给出一个字符串,然后给出一系列的x,y;把字符串中的x与y字母交换

    分析:把26个字母中间的x,y交换,在输出的后做处理即可;

        如果直接循环在字符串中进行交换,中间有案例会超时。

    #include<iostream>
    #include<cstdio>
    using namespace std;
    int main(){
        int m,n;
        char a[200005],x,y;
        int b[27];
        scanf("%d%d%s",&m,&n,a);
         for(int i=0; i<26; i++)
            b[i] = i;
        while(n--)
        {
            cin>>x>>y;
             for(int i=0;i<26;i++)
             {
                 if(b[i]==x-'a')
                        b[i]=y-'a';
                 else  if(b[i]==y-'a')
                        b[i]=x-'a';
             }
        }
         for(int i=0; i<m; i++)
            printf("%c", b[a[i]-'a']+'a');
        printf("
    ");
    
        return 0;
    }
  • 相关阅读:
    rpc
    route
    ROLLBACK
    rmdir -删除空目录
    rm
    rlogin
    REVOKE
    resolver
    RESET
    repquota
  • 原文地址:https://www.cnblogs.com/fenhong/p/5524084.html
Copyright © 2011-2022 走看看