| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:小弟跪求牛人(样例全部ok,附代码)In Reply To:小弟跪求牛人(样例全部ok,附代码) Posted by:realkingiscoming at 2009-11-06 11:35:29 举个例子,如果输入是S,
输出应该是 S -- is a regular palindrome.
你的是 2 -- is a regular palindrome.
> #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: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator