UVa 401 Palindromes
2012-03-21 22:40 Rollen Holt 阅读(451) 评论(0) 收藏 举报题目大意:Palindrome的定义是,一个字符串从左向右和从右向左读是一样的;Mirrored string的定义是,一个字符串左右对称;Mirrored palindrome就是既palindrome又mirrored的字符串。对称的关系表题目中已给出。
#include<stdio.h>
#include<string.h>
const char one[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789";
const char two[]="A 3 HIL JM O 2TUVWXY51SE Z 8 ";
const long len=35;
bool Palindrome(const char *s)
{
long begin=0,end=strlen(s)-1;
while(begin<=end)
{
if(s[begin]==s[end])
{
begin++;
end--;
}
else
return false;
}
return true;
}
long pos(char ch)
{
for(long i=0;i<len;i++)
if(one[i]==ch)
return i;
return len;
}
bool Mirror(const char *s)
{
long begin=0,end=strlen(s)-1;
while(begin<=end)
{
long tmp=pos(s[begin]);
if(s[end]==two[tmp])
{
begin++;
end--;
}
else
return false;
}
return true;
}
int main()
{
char str[1000];
while(gets(str)!=0)
{
bool a=false,b=false;
a=Palindrome(str);
b=Mirror(str);
if(a&&b)
printf("%s -- is a mirrored palindrome.\n",str);
else if(a)
printf("%s -- is a regular palindrome.\n",str);
else if(b)
printf("%s -- is a mirrored string.\n",str);
else
printf("%s -- is not a palindrome.\n",str);
putchar('\n');
}
return 0;
}
==============================================================================
本博客已经废弃,不在维护。新博客地址:http://wenchao.ren
我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜战不眠不休;面对困难,能够迎难而上挑战自我。他
们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想“用智慧开创属于自己的事业”。我想说的是,其
实我是一个程序员
==============================================================================
浙公网安备 33010602011771号