蒟蒻求助,本地和其他oj上能过,洛谷十个点都RE
查看原帖
蒟蒻求助,本地和其他oj上能过,洛谷十个点都RE
453460
End1essSummer楼主2021/7/27 19:10
#include<bits/stdc++.h>
#include<iostream>
#include<string.h>
#include<cstring>
using namespace std;
char a[1000],b[1000],e[1000];
/*a用来储存原信息,b用来储存翻译信息,e用来储存需要翻译的信息*/
int c[30][3];
/*c[i][1]用来存储i对应的S国密码,c[i][2]用来存储它被更改了多少次,用于判断Failed*/
int main(){
    cin.getline(a,sizeof(a));
    cin.getline(b,sizeof(b));
    for(int i=0;i<strlen(a);i++){
        if(c[b[i]-64][1]==a[i]-64) continue;
        /*如果这个字符和之前存的一样,直接检查下一个字符就可以了,至于为什么要减64的原因是A的ascii码是65*/
        c[b[i]-64][1]=a[i]-64;
        c[b[i]-64][2]++;
    }for(int i=1;i<=26;i++){
        if(c[i][2]!=1) {
            cout<<"Failed";
            return 0;
        }
    }cin.getline(e,sizeof(e));
    for(int i=0;i<strlen(e);i++){
        for(int k=1;k<=26;k++){
        if(c[k][1]==e[i]-64){
            cout<<char(k+64);
            continue;
            }
        }
    }return 0;
}

QAQ大佬们帮一下蒟蒻吧QAQ

2021/7/27 19:10
加载中...