您的位置:首页 > 其它

uva_401

2015-02-14 18:02 302 查看
这道题较为简单,关键在于表示MIRROR的映射关系,用到了strchr函数

#include <stdio.h>
#include <string.h>

const char c[40] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789";
const char r[40] = "A 3 HIL JM O 2TUVWXY51SE Z 8 ";

int isP(char *d)
{
int i;
int l = strlen(d);
for(i = 0; i <= l/2; ++i)
{
if(d[i] != d[l-1-i]) return 0;
}
return 1;
}

int isM(char *d)
{
int i;
int temp;
int l = strlen(d);
for(i = 0; i <= l/2; ++i)
{
temp = strchr(c, d[i]) - c;
if(d[l-1-i] != r[temp]) return 0;
}
return 1;
}

int main()
{
char x[25];
int pc, pm;
while((scanf("%s", x)) != EOF){
getchar();
pc = isP(x);
pm = isM(x);
if(pc == 0 && pm == 0) printf("%s -- is not a palindrome.\n", x);
else if(pc == 0 && pm == 1) printf("%s -- is a mirrored string.\n", x);
else if(pc == 1 && pm == 0) printf("%s -- is a regular palindrome.\n",x);
else if(pc == 1 && pm == 1) printf("%s -- is a mirrored palindrome.\n",x);
printf("\n");

}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  uva strchr 简单算法