#include <stdio.h>
#include <string.h>
#define maxn 100
char s[maxn];
int main()
{
//输入一个字符串s
memset(s,' ',sizeof(s));
while(scanf("%s",s)==1)
{
//判断它是否为回文串
//倒序字符串判断两字符串是否相等即可
//产生一个倒序字符串
char res[maxn];
memset(res,' ',sizeof(res));
for(int i=0;i<strlen(s);i++)
res[i]=s[strlen(s)-1-i];
//判断相等
int tag=1;
for(int i=0;i<strlen(s);i++)
if(s[i]!=res[i])
{
tag=0;
break;
}
if(tag==1)
printf("%s","is");
else
printf("%s","not");
//判断是否为镜像串
//镜像串的数组,偶数位为原字母,奇数位为镜像后
char relation[]="AAE3HHIIJLLJOOS2TTUUVVWWXXZ5112S3E5Z88";
//产生镜像字符串,倒序从原字母中查找,对应成镜像后的结果
char restr[maxn];
memset(restr,' ',sizeof(restr));
for(int i=0;i<strlen(s);i++)
{
for(int j=0;j<strlen(relation);j+=2)
if(s[i]==relation[j])
restr[strlen(s)-1-i]=relation[j+1];
}
//printf("%s",restr);
tag=1;
for(int i=0;i<strlen(s);i++)
if(s[i]!=restr[i])
{
tag=0;
break;
}
if(tag==1)
printf("%s","is");
else
printf("%s","not");
}
}
第三章例题 回文词与镜像词
最新推荐文章于 2020-11-14 19:43:00 发布
本文介绍了一种使用 C 语言实现的算法,该算法能够判断输入的字符串是否为回文串及镜像串。通过倒序字符串比较以及利用预定义的镜像关系表进行字符映射来实现。
450

被折叠的 条评论
为什么被折叠?



