下载了数据2,将输入在本地测试时,发现本地输出与正确输出相同,但根据测试点信息(1行1列,读取F,因该为A)判断,洛谷评测输出了Failed,与本地不一致,只有30分,求助大佬!!! 代码(开发环境VS2019,语言C):
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char mi[110] = "\0", ming[110] = "\0", que[110] = "\0";
int main()
{
int res[110] = { 0 };
int key[30] = { 0 }, chachong[30] = { 0 };
scanf("%s\n%s\n%s",&mi,&ming,&que);
//确定密钥
if (strlen(mi) < 26)
{
printf("Falied");
return 0;
}
for (int i = 0; mi[i] != '\0'; i++)
{
if (key[mi[i] - 'A'] == 0)
key[mi[i] - 'A'] = ming[i];
else
if (key[mi[i] - 'A'] == ming[i])
key[mi[i] - 'A'] = ming[i];
else
{
printf("Falied");
return 0;
}
}
for (int i = 0; i < 30; i++)
{
chachong[key[i] - 'A']++;
if (chachong[key[i] - 'A'] > 1)
{
printf("Falied");
return 0;
}
}
//翻译
for (int i = 0; que[i] != '\0'; i++)
{
if (key[que[i] - 'A'] == 0)
{
printf("Falied");
return 0;
}
else
res[i] = key[que[i] - 'A'];
}
//输出部分
int len = 0;
len = strlen(que);
for (int i = 0; i < len; i++)
printf("%c", res[i]);
return 0;
}