- 字符串还原
- 2019-10-22 18:59:13 @
#include<stdio.h>#include<string.h>
void fz(char n[10000],int k);/*将字符串逆序*/
int main()
{
int k,i,m,p,q;
scanf("%d",&k);
char ch1[10000],ch2[10000],ch3[10000],temp1[10000],temp2[10000];
scanf("%s",&ch1);
scanf("%s",&ch2);
scanf("%s",&ch3);
fz(ch1,k);
for(m=0;m<=6;m++)
{
for(i=0;i<=k-1;i++)
{
if(ch1[i]-m<'a')
{
temp1[i]='z';
}
else
{
temp1[i]=ch1[i]-m;
}
}
for(i=0;i<=k-1;i++)
{
if(ch1[i]+m>'z')
{
temp2[i]='a';
}
else
{
temp2[i]=ch1[i]+m;
}
}
if(strcmp(temp1,ch2)==0&&strcmp(temp2,ch3)==0)
{
printf("%s",ch1);
return 0;
}
if(strcmp(temp1,ch3)==0&&strcmp(temp2,ch2)==0)
{
printf("%s",ch1);
return 0;
}
}
fz(ch1,k);
fz(ch2,k);
for(m=0;m<=6;m++)
{
for(i=0;i<=k-1;i++)
{
if(ch2[i]-m<'a')
{
temp1[i]='z';
}
else
{
temp1[i]=ch2[i]-m;
}
}
for(i=0;i<=k-1;i++)
{
if(ch2[i]+m>'z')
{
temp2[i]='a';
}
else
{
temp2[i]=ch2[i]+m;
}
}
if(strcmp(temp1,ch1)==0&&strcmp(temp2,ch3)==0)
{
printf("%s",ch2);
return 0;
}
if(strcmp(temp1,ch3)==0&&strcmp(temp2,ch1)==0)
{
printf("%s",ch2);
return 0;
}
}
fz(ch2,k);
fz(ch3,k);
for(m=0;m<=6;m++)
{
for(i=0;i<=k-1;i++)
{
if(ch3[i]-m<'a')
temp1[i]='z';
else
{
temp1[i]=ch3[i]-m;
}
}
for(i=0;i<=k-1;i++)
{
if(ch3[i]+m>'z')
temp2[i]='a';
else
{
temp2[i]=ch3[i]+m;
}
}
if(strcmp(temp1,ch1)==0&&strcmp(temp2,ch2)==0)
{
printf("%s",ch3);
return 0;
}
if(strcmp(temp1,ch2)==0&&strcmp(temp2,ch1)==0)
{
printf("%s",ch3);
return 0;
}
}
return 0;
}void fz(char n[10000],int k){
char h[10000];
int j;
for(j=0;j<=k-1;j++)
{
h[j]=n[j];
}
for(j=0;j<=k-1;j++)
{
n[j]=h[k-j-1];
}
}