Problem Statement
Difficulty : Easy.
Algorithm : Greedy.
Solution :
C++ implementation.
Difficulty : Easy.
Algorithm : Greedy.
Solution :
C++ implementation.
#include <stdio.h> #include <string.h> #include <iostream> using namespace std; int main(){ int len,i,j,k,a,b,hi; char str[100000],mirr[300]; //freopen("i.txt","r",stdin); memset(mirr,NULL,sizeof(mirr)); mirr['A']='A'; mirr['E']='3'; mirr['H']='H'; mirr['I']='I'; mirr['J']='L'; mirr['L']='J'; mirr['M']='M'; mirr['O']='O'; mirr['S']='2'; mirr['T']='T'; mirr['U']='U'; mirr['V']='V'; mirr['W']='W'; mirr['X']='X'; mirr['Y']='Y'; mirr['Z']='5'; mirr['1']='1'; mirr['2']='S'; mirr['3']='E'; mirr['5']='Z'; mirr['8']='8'; while(scanf("%s",&str)==1){ a=b=1; len=strlen(str); hi=len/2; if(len & 1) hi++; for(i = 0, j = len-1; i < hi; i++,j-- ){ if(a){ if(str[i]!=str[j]) a=0; } if(b){ if(mirr[str[i]]!=str[j]) b=0; } } if (a && b) printf ("%s -- is a mirrored palindrome.",str); else if (a) printf ("%s -- is a regular palindrome.",str); else if (b) printf ("%s -- is a mirrored string.",str); else printf ("%s -- is not a palindrome.",str); printf("\n\n"); } return 0; }
No comments:
Post a Comment