蒟蒻求助!!!!!
查看原帖
蒟蒻求助!!!!!
232541
田所浩二de114514楼主2020/8/16 16:59

第四个点错了 代码如下

#include<bits/stdc++.h>
using namespace std;
char table[26]= {""};//设置空
int main() {
	string a,b,c;
	cin>>a>>b>>c;//ab是解密“方法” c是要解密的
	if(a.size()!=b.size()) {//如果串长度不一样
		printf("Failed");
		return 0;
	}
	for(int i=0; i<a.size(); i++) {//既然两个长度一样随便选个跑循环
		if(table[a[i]-'A']=='\0') {//如果没有改过 那么就改掉
			table[a[i]-'A']=b[i];
		} else if(table[a[i]-'A']!=b[i]) {//如果改过了还和原来的不同 那么说明错误 报错结束
			printf("Failed");
			return 0;
		}

	}
	for(int i=0; i<26; i++) {//跑一遍26个字母
		if(table[i]=='\0') {//如果有一个没被改过 那么说明解密的“方法”没有完全声明 报错结束
//			cout<<"还有空的"; 
			printf("Failed");
			return 0;
		}
	}
//	cout<<table;
	for(int i=0;i<c.size();i++){//跑一遍c的长度 用所得出的方法改掉
		c[i]=table[c[i]-'A'];
		
	}//输出
	for(int i=0;i<c.size();i++){
		printf("%c",c[i]);//输出
	}
	
	
	return 0;
}

2020/8/16 16:59
加载中...