Code: Select all
#include<stdio.h>
#include<string.h>
int main()
{
//freopen("pal.txt","r",stdin);
char lett[]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','1','2','3','4','5','6','7','8','9'};
char rev[]={'A','$','$','$','3','$','$','H','I','L','$','J','M','$','O','$','$','$','2','T','U','V','W','X','Y','5','1','S','E','$','Z','$','$','8','$' };
char a[100];
int l,x,m,ns;
while(gets(a))
{
l=strlen(a);
if(l==1)
m=l;
else if(l%2==0)
m=l/2;
else
m=(l-1)/2;
ns=0;
for(int j=0;j<m;j++)
{
for(int k=0;lett[k];k++)
{
if(a[j]==lett[k])
{
if(a[l-1-j]==rev[k])
ns++;
}
}
}
//printf("%d ",ns);
x=0;
for(int i=0;i<m;i++)
{
if(a[i]==a[l-1-i])
x++;
}
if(l%2==1)
{
for(int q=0;lett[q];q++)
{
if(a[m]==lett[q])
{
if(a[m]==rev[q])
ns++;
}
}
}
//printf("%d %d %d %d ",ns,x,m,l);
if(l%2==1&&ns==m+1&&x==m)
printf("%s -- is a mirrored palindrome.\n",a);
else if(l%2==1&&ns!=m&&x==m)
printf("%s -- is a regular palindrome.\n",a);
else if(l%2==1&&ns==m+1&&x!=m)
printf("%s -- is a mirrored string.\n",a);
else if(l%2==1&&ns==m&&x!=m)
printf("%s -- is not a palindrome.\n",a);
else if(x==m&&ns==m)
printf("%s -- is a mirrored palindrome.\n",a);
else if(ns==m&&x!=m)
printf("%s -- is a mirrored string.\n",a);
else if(x==m&&ns!=m)
printf("%s -- is a regular palindrome.\n",a);
else
printf("%s -- is not a palindrome.\n",a);
printf("\n");
}
return 0;
}