zoukankan      html  css  js  c++  java
  • 洛谷 1071 潜伏者(NOIp2009提高组)

    【题意概述】  

      给出三行字符串,前两行代表密码与明文的对应关系,第三行为待翻译的文本。要求按照对应关系翻译文本。

    【题解】

      直接模拟即可。 注意判断Failed的情况。

     1 #include<cstdio>
     2 #include<algorithm>
     3 #include<cstring>
     4 #define LL long long
     5 #define rg register
     6 #define N 200010
     7 using namespace std;
     8 int n,m,a[26],b[26];
     9 char s1[N],s2[N],c[N],ans[N];
    10 int main(){
    11     memset(a,-1,sizeof(a));
    12     memset(b,-1,sizeof(b));
    13     scanf("%s%s%s",s1,s2,c);
    14     m=strlen(s1); n=strlen(c);
    15     for(rg int i=0;i<m;i++)
    16         if(a[s1[i]-'A']==-1&&b[s2[i]-'A']==-1) a[s1[i]-'A']=s2[i]-'A',b[s2[i]-'A']=s1[i]-'A'; 
    17         else
    18             if(a[s1[i]-'A']!=s2[i]-'A'||b[s2[i]-'A']!=s1[i]-'A'){
    19                 puts("Failed"); return 0;
    20             }
    21     for(rg int i=0;i<26;i++)if(a[i]==-1){
    22         puts("Failed"); return 0;
    23     }
    24     for(rg int i=0;i<n;i++) 
    25         if(a[c[i]-'A']!=-1) ans[i]=(char)(a[c[i]-'A']+'A');
    26         else{
    27             puts("Failed"); return 0;
    28         }
    29     for(rg int i=0;i<n;i++) printf("%c",ans[i]);
    30     puts("");
    31     return 0;
    32 }
    View Code
  • 相关阅读:
    Moya 浅析
    Swift: Alamofire -> http请求 & ObjectMapper -> 解析JSON
    ReactiveCocoa 用法实例
    RACSignal的Subscription深入
    idea 不能编译生成class文件
    idea 右下角不显示git分支
    SSO单点登录的研究
    JVM内存模型简介
    Spring事务处理
    RabbitMQ
  • 原文地址:https://www.cnblogs.com/DriverLao/p/9411248.html
Copyright © 2011-2022 走看看