UVa:401 - Palindromes

来源:互联网 发布:bt天堂种子php 编辑:程序博客网 时间:2024/05/07 02:26

#include<cstdio>
#include<string>

char ar[30];
char *character="AEHIJLMOSTUVWXYZ12358";
char *reverse=  "A3HILJMO2TUVWXY51SEZ8";

int isPalindrome(char*ar);
int isMirrored(char*ar);
int main()
{

 while(scanf("%s",ar)!=EOF)
 {
  if(isPalindrome(ar))
  {
   if(isMirrored(ar))
   printf("%s -- is a mirrored palindrome./n",ar);
   else
   printf("%s -- is a regular palindrome./n",ar); 
   continue;
  }
  else if(isMirrored(ar))
  { 
   if(isPalindrome(ar))
   printf("%s -- is a mirrored palindrome./n",ar);
   else
   printf("%s -- is a mirrored string./n",ar); 
   continue;
  }
  else
   printf("%s -- is not a palindrome./n",ar); 


  
 }
 return 0;
}

 


int isPalindrome(char*ar)
{
 int size=strlen(ar);
 for(int i=0,j=size-1;i<j;i++,j--)
  if(ar[i]!=ar[j])
   return 0;
 return 1;
}

int isMirrored(char*ar)
{
 int size=strlen(ar);
 for(int i=0,j=size-1;i<=j;i++,j--)
 {
  char* test1=strchr(character,ar[i]);
  char* test2=strchr(reverse,ar[j]);
  if(!test1||!test2||(test1-character)!=(test2-reverse))
   return 0;
 }
 return 1;
}

 

原创粉丝点击