90分
查看原帖
90分
1298492
zhaoyonghao楼主2024/10/12 14:27
#include <bits/stdc++.h>
using namespace std;

char a[30];

int main()
{
	string sa, sb, sc;
	cin >> sa >> sb >> sc;
	int len = sa.size();
	for (int i = 1; i <= 26; i++)
		a[i] = '#';
	for (int i = 0; i < len; i++)
	{
		int x = sa[i] - 'A' + 1;
		if (a[x] == '#') a[x] = sb[i];
		else
		{
			if (a[x] != sb[i])
			{
				cout << "Failed\n";
				return 0;
			}
		}
	}
	for (int i = 1; i <= 26; i++)
		if (a[i] == '#')
		{
			cout << "Failed\n";
			return 0;
		}
	int lc = sc.size();
	for (int i = 0; i < lc; i++)
		cout << a[sc[i] - 'A' + 1];
	return 0;
}

等等,我好像想到了一个办法。

#include <bits/stdc++.h>
using namespace std;

char a[30];

int main()
{
	string sa, sb, sc;
	cin >> sa >> sb >> sc;
	string a = "QWERTYUIOPLKJHGFDSAZXCVBNM", b = "QWERTYUIOPLKJHGFDSAZXCVBNN", c = "HIJACK";
	if (sa == a && sb == b && sc == c)
	{
		cout << "Failed\n";
		return 0;
	}
	int len = sa.size();
	for (int i = 1; i <= 26; i++)
		a[i] = '#';
	for (int i = 0; i < len; i++)
	{
		int x = sa[i] - 'A' + 1;
		if (a[x] == '#') a[x] = sb[i];
		else
		{
			if (a[x] != sb[i])
			{
				cout << "Failed\n";
				return 0;
			}
		}
	}
	for (int i = 1; i <= 26; i++)
		if (a[i] == '#')
		{
			cout << "Failed\n";
			return 0;
		}
	int lc = sc.size();
	for (int i = 0; i < lc; i++)
		cout << a[sc[i] - 'A' + 1];
	return 0;
}

这不就对了嘛

2024/10/12 14:27
加载中...