Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

小弟跪求牛人(样例全部ok,附代码)

Posted by realkingiscoming at 2009-11-06 11:35:29 on Problem 1590
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;

bool is_parlindrome(const char* src)
{
	const char *end = src;
	while(*end)
		++end; // has pointed to ''
	--end;
	while(src < end)
	{
		if(*src++ != *end--)
			return false;
	}
	return true;
}

bool is_mirrored(char* src)
{
	char originalstr[10000];

	strcpy(originalstr, src);
	
	int i;
	int len = strlen(src);

	for(i=0; i<len; i++)
	{
		switch(src[i])
		{
		case 'A': src[i] = 'A'; break;
		case 'E': src[i] = '3'; break;
		case 'H': src[i] = 'H'; break;
		case 'I': src[i] = 'I'; break;
		case 'J': src[i] = 'L'; break;
		case 'L': src[i] = 'J'; break;
		case 'M': src[i] = 'M'; break;
		case 'O': src[i] = 'O'; break;
		case 'S': src[i] = '2'; break;
		case 'T': src[i] = 'T'; break;
		case 'U': src[i] = 'U'; break;
		case 'V': src[i] = 'V'; break;
		case 'W': src[i] = 'W'; break;
		case 'X': src[i] = 'X'; break;
		case 'Y': src[i] = 'Y'; break;
		case 'Z': src[i] = '5'; break;
		case '1': src[i] = '1'; break;
		case '2': src[i] = 'S'; break;
		case '3': src[i] = 'E'; break;
		case '5': src[i] = 'Z'; break;
		case '8': src[i] = '8'; break;
		default:
			return false;
		}
	}

	//now compare the two strings

	for(i=0; i<len; i++)
	{
		if(originalstr[i] != src[len - 1 - i])
			return false;
	}

	return true;
}

int main()
{
	char test[100];

	while(scanf("%s", test) != EOF)
	{
		if((is_parlindrome(test) == false) && (is_mirrored(test) == false))
		{
			cout<<test<<" -- is not a palindrome."<<endl;
			cout<<endl;
			continue;
		}
		if((is_parlindrome(test) == true) && (is_mirrored(test) == false))
		{
			cout<<test<<" -- is a regular palindrome."<<endl;
			cout<<endl;
			continue;
		}
		if((is_parlindrome(test) == false) && (is_mirrored(test) == true))
		{
			cout<<test<<" -- is a mirrored string."<<endl;
			cout<<endl;
			continue;
		}
		if((is_parlindrome(test) == true) && (is_mirrored(test) == true))
		{
			cout<<test<<" -- is a mirrored palindrome."<<endl;
			cout<<endl;
			continue;
		}
	}

	return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator