Uva题目401总结

来源:互联网 发布:malware defender知乎 编辑:程序博客网 时间:2024/05/22 14:47

这是一道关于运用常量表对代码进行简化操作的题目,对于题目的理解要求有以下几点:输入一个字符串1、判断其是否为回文串2、判断其是否为镜像串;结果:如果是回文串又是镜像串输出“     -- is a mirrored palindrome.”,如果是只是回文串,则输出“     -- is a regular palindrome.  ”,如果只是镜像串,则输出“  -- is a mirrored string.”,如果不是回文串,也不是镜像串,则输出“   -- is not a palindrome.

其中需要注意字符‘o'和数值'0'一样的;

判断是否回文:

int isp(char a[]){int len=strlen(a)-1;for(int i=0;i<len;i++,len--)if(a[i]!=a[len])return 0;return 1;}
判断是否镜像:

先找出有镜像的字符(A、E、H、I、L、J、M、O、S、T、U、V、W、X、Y、Z)≯(A、3、H、I、J、L、M、O、2、T、U、V、W、X、Y、5)这个数组要实现,如果输入一个字符可以找到它的镜像字符;例如输入E之后转换为3;输入3转换为E;

我们可以把这个数组分成两类,一类为字符型数组,一类为数值型数组;在字符型数组中以减A作为位置,数值型数组以减1作为位置。

char a[]={'A',' ',' ',' ','3',' ',' ','H','I','L',' ','J','M',' ','O',' ',' ',' ','2','T','U','V','W','X','Y','5'};int b[]={'1','S','E',' ','Z',' ',' ','8',' '};int ism(char s[]){int len=strlen(s)-1,temp=0;char t[100];for(int i=0;i<len;i++,len--){if(s[i]>='A'&&s[i]<='Z'){temp=s[i]-'A';t[i]=a[temp];}else{temp=s[i]-'1';t[i]=b[temp];}if(s[i]!=s[len])return 0;}return 1;}
通过判断返回值,来判断字符串的类型;

原创粉丝点击