玄学问题,绝对玄学,极其诡异
查看原帖
玄学问题,绝对玄学,极其诡异
102605
AloneV楼主2022/4/26 16:44

这是30分代码

#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<queue>
#include<iostream>
#include<algorithm>
using namespace std;
string a,b,c,s;
int ans;
bool flag1[101],flag2[101];
int main()
{
	cin>>a>>b>>c;
	for (int i=0;i<a.size();i++)
	{
		if (flag1[a[i]-'A'+1]==0&&flag2[b[i]-'A'+1]==0)
		{
			s[a[i]-'A'+1]=b[i];
			flag1[a[i]-'A'+1]=1;
			flag2[b[i]-'A'+1]=1;
			ans++;
		}
		if (s[a[i]-'A'+1]!=b[i]&&flag1[a[i]-'A'+1]==1)
		{
			cout<<"Failed";
			return 0;
		}
		if (s[a[i]-'A'+1]!=b[i]&&flag2[b[i]-'A'+1]==1)
		{
			cout<<"Failed";
			return 0;
		}
		if (ans==26)	{break;}
	}
	if (ans<26)
	{
		cout<<"Failed";
		return 0;
	}
	for (int i=0;i<c.size();i++)	{cout<<s[c[i]-'A'+1];}
	return 0;
}

这是AC代码

#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<queue>
#include<iostream>
#include<algorithm>
using namespace std;
string a,b,c,s;
int lena,lenb,lenc,ans;
bool flag1[101],flag2[101];
int main()
{
	cin>>a>>b>>c;
	for (int i=0;i<a.size();i++)
	{
		if (flag1[a[i]-'A'+1]==0&&flag2[b[i]-'A'+1]==0)
		{
			s[a[i]-'A'+1]=b[i];
			flag1[a[i]-'A'+1]=1;
			flag2[b[i]-'A'+1]=1;
			ans++;
		}
		if (s[a[i]-'A'+1]!=b[i]&&flag1[a[i]-'A'+1]==1)
		{
			cout<<"Failed";
			return 0;
		}
		if (s[a[i]-'A'+1]!=b[i]&&flag2[b[i]-'A'+1]==1)
		{
			cout<<"Failed";
			return 0;
		}
		if (ans==26)	{break;}
	}
	if (ans<26)
	{
		cout<<"Failed";
		return 0;
	}
	for (int i=0;i<c.size();i++)	{cout<<s[c[i]-'A'+1];}
	return 0;
}

唯一的区别就是多定义了lena,lenb,lenc 但是后面的代码也没用到这三个变量啊

2022/4/26 16:44
加载中...