如果发现广告等破坏行为,请尽量将条目恢复到较早的版本而不是把相应内容直接删除,谢谢合作。
请使用nocow的标准命名规则UVA/题号而不是题号 - 标题进行命名,谢谢合作。具体可参照本站其它页面。

UVA/401讨论

来自"NOCOW"

< UVA
跳转到: 导航, 搜索
/*
*   自己写的一个看起来比较清晰的版本
*/
 
 
 
#include<stdio.h>
#include<string.h>
 
int main()
{
	char str[1000];
	char mes[][50]=
	{
		" -- is not a palindrome." ,
		" -- is a regular palindrome.",
		" -- is a mirrored string.",
		" -- is a mirrored palindrome." 
	};
	char mirrormap[129];
	mirrormap['A']='A';
	mirrormap['E']='3';
	mirrormap['H']='H';
	mirrormap['I']='I';
	mirrormap['J']='L';
	mirrormap['L']='J';
	mirrormap['M']='M';
	mirrormap['O']='O';
	mirrormap['S']='2';
	mirrormap['T']='T';
	mirrormap['U']='U';
	mirrormap['V']='V';
	mirrormap['W']='W';
	mirrormap['X']='X';
	mirrormap['Y']='Y';
	mirrormap['Z']='5';
	mirrormap['1']='1';
	mirrormap['2']='S';
	mirrormap['3']='E';
	mirrormap['5']='Z';
	mirrormap['8']='8';
 
	int i,j,m,p;
	int len;
 
	while(scanf("%s",str)==1)
	{
		m=p=1;
		len=strlen(str);
 
		for(i=0,j=len-1;i<=j;++i,--j)
		{
			if(p && (str[i] != str[j]))		
				p=0;
			if(m && (mirrormap[str[i]] != str[j]))		
				m=0;
		}
 
		printf("%s%s\n\n",str,mes[p+m*2]);
	}
	return 0;
}
个人工具