回文~~~
#include <stdio.h>
#include <string.h>
int is_p(char* s)
{
int n = strlen(s);
for(int i = 0; i < n/2; i++)
{
if(s[i] != s[n-i-1])
return 0;
}
return 1;
}
int is_mrror(char* s)
{
const char A[20] = "AMYOHITUVWX18EL25";
const char B[20] = "AMYOHITUVWX183JSZ";
int size = strlen(A);
int n = strlen(s);
for(int k = 0; k < n; k++)
{
if(strchr(A,s[k])==NULL&&strchr(B,s[k])==NULL)
return 0;
}
if(n == 1)
{
if(strchr(A,s[0])==NULL)
return 0;
}
else
{
for(int i = 0; i < n/2; i++)
{
for(int j = 0; j < size; j++)
{
if(s[i] == A[j])
{
if(s[n-1-i] != B[j]) return 0;
}
}
}
return 1;
}
}
int main(int argc, char *argv[]) {
char s[21];
memset(s,0,sizeof(s));
while(scanf("%s",s)==1)
{
if((is_p(s))&&(is_mrror(s)))
printf("%s -- is a mirrored palindrome.\n",s);
else if((!is_p(s))&&(!is_mrror(s)))
printf("%s -- is not a palindrome.\n",s);
else if((is_p(s))&&(!is_mrror(s)))
printf("%s -- is a regular palindrome.\n",s);
else if((!is_p(s))&&(is_mrror(s)))
printf("%s -- is a mirrored string.\n",s);
}
return 0;
}