Uva题目401总结

这是一道关于运用常量表对代码进行简化操作的题目,对于题目的理解要求有以下几点:输入一个字符串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;
}
通过判断返回值,来判断字符串的类型;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值