-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuva401.cpp
40 lines (40 loc) · 1.06 KB
/
uva401.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
using namespace std;
int main(){
string reverse="AEHIJLMOSTUVWXYZ12358", reverseA="A3HILJMO2TUVWXY51SEZ8", q;
while(cin>>q){
int reverI=0;
bool reverB=false, same = true;
for(int i=0,j=q.length()-1;i<q.length()/2;i++,j--){
if(q[i]!=q[j]){
for(int c=0;c<reverse.length();c++){
if((q[i]==reverse[c] && q[j]==reverseA[c])||(q[i]==reverseA[c] && q[j]==reverse[c])){
reverI++;
reverB=true;
break;
}
}
if(reverB==false){
same = false;
cout<<q<<" -- is not a palindrome."<<endl;
break;
}
}else if(q[i]==q[j]){
for(int c=0;c<reverse.length();c++){
if((q[i]==reverse[c] && q[j]==reverseA[c])||(q[i]==reverseA[c] && q[j]==reverse[c])){
reverI++;
break;
}
}
}
}
if(reverB==true && reverI==q.length()/2){
cout<<q<<" -- is a mirrored string."<<endl;
}else if(reverB==false && reverI==q.length()/2){
cout<<q<<" -- is a mirrored palindrome."<<endl;
}else if(same==true && reverB==false){
cout<<q<<" -- is a regular palindrome."<<endl;
}
cout<<endl;
}
}