#include <stdio.h>
#include <string.h>
int main()
{
int i, mid, len;
char stdc[50]= {'A',0,0,0,'3',0,0,'H','I','L',0,'J','M',0,'O',0,0,0,'2','T','U','V','W','X','Y','5','1','S','E',0,'Z',0,0,'8',0};<span style="white-space:pre"> </span>
char ch[30];
bool isr, ism;
while( scanf("%s", ch)!=-1 )
{
isr = ism = true;
len = strlen(ch);
mid = len / 2 + (len%2==0? 0:1);
for(i=0; i<mid; i++)
{
if(ch[i] != ch[len-i-1])
{
isr = false;
if(ch[i]>='A' && ch[i]<='Z')
{
if(ch[len-i-1] != stdc[ch[i]-'A'] )
ism = false;
}
else if(ch[i]>='0' && ch[i]<='9')
{
if(ch[len-i-1] != stdc[ch[i]-'0'+25] )
ism = false;
}
}
else
{
if(ch[i]>='A' && ch[i]<='Z')
{
if(ch[len-i-1] != stdc[ch[i]-'A'] )
ism = false;
}
else if(ch[i]>='0' && ch[i]<='9')
{
if(ch[len-i-1] != stdc[ch[i]-'0'+25] )
ism = false;
}
}
if(!isr && !ism) break;
}
printf("%s", ch);
if(isr && ism)
printf(" -- is a mirrored palindrome.\n");
else if(isr)
printf(" -- is a regular palindrome.\n");
else if(ism)
printf(" -- is a mirrored string.\n");
else
printf(" -- is not a palindrome.\n");
printf("\n");
}
return 0;
}
Palindromes //简单字符串
最新推荐文章于 2021-06-07 19:39:24 发布