UVAOJ 401 注意点...

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



char mirror_Char[26] = {
	'A','!','!','!','3','!','!','H','I','L','!','J','M','!','O','!'
,'!','!','2','T','U','V','W','X','Y','5'};

char mirror_Num[9] = {'1','S','E','!','Z','!','!','8','!'};

bool judgeMirror(char* temp)
{
	int work = 1;
	int length = strlen(temp);
	
	for(int i = 0;i<(length+1)/2;i++)
	{
		if(isalpha(temp[i]))
		{
			int pos = temp[i] - 'A';
			if(mirror_Char[pos] != temp[length-i-1])
			work = 0;
		}
		else{
			int pos = temp[i] - '1';
			if(mirror_Num[pos] != temp[length-i-1])
			work = 0; 
		}
		
		if(work == 0) return false;
	}
	return true;
}

bool judgePalindrome(char *temp)
{
	int length = strlen(temp);
	int work = 1;
	
	for(int i = 0;i<(length+1)/2;i++)
	{
		if(temp[i] != temp[length-i-1])
		work = 0;
		
		if(work == 0)
		return false;
	}
	return true;
}

char buf[30];


int main()
{
	memset(buf, 0, sizeof(buf));
	int countJudge = 0;
	while(scanf("%s",buf)!=EOF)
	{
		countJudge = 0;
		

		if(judgeMirror(buf))
		{
			countJudge += 100;
		}
		if(judgePalindrome(buf))
		{
			countJudge += 1000;
		}
		
		printf("%s -- ",buf);
		
		if(countJudge == 0)
		{
			printf("is not a palindrome.\n");
		}
		if(countJudge == 100)
		{
			printf("is a mirrored string.\n");
		}
		if(countJudge == 1000)
		{
			printf("is a regular palindrome.\n");
		}
		if(countJudge == 1100)
		{
			printf("is a mirrored palindrome.\n");
		}
		memset(buf, 0, sizeof(buf));
		printf("\n");
		
	}
	return 0; 
}


注意:  

1.输入的时候可能包括了换行.

2.符号的对应可能有问题

3.输出之后还要输出空行

猜你喜欢

转载自blog.csdn.net/yao_jianlun/article/details/8715047