poj 1590Palindromes 简单模拟

来源:互联网 发布:网络交友新时空图片 编辑:程序博客网 时间:2024/05/16 11:23
//简单模拟吧,哎,一直感觉自己很水//继续练吧#include <algorithm>#include <bitset>#include <cassert>#include <cctype>#include <cfloat>#include <climits>#include <cmath>#include <complex>#include <cstdio>#include <cstdlib>#include <cstring>#include <ctime>#include <deque>#include <functional>#include <iostream>#include <list>#include <map>#include <numeric>#include <queue>#include <set>#include <stack>#include <vector>#define ceil(a,b) (((a)+(b)-1)/(b))#define endl '\n'#define gcd __gcd#define highBit(x) (1ULL<<(63-__builtin_clzll(x)))#define popCount __builtin_popcountlltypedef long long ll;using namespace std;const int MOD = 1000000007;const long double PI = acos(-1.L);template<class T> inline T lcm(const T& a, const T& b) { return a/gcd(a, b)*b; }template<class T> inline T lowBit(const T& x) { return x&-x; }template<class T> inline T maximize(T& a, const T& b) { return a=a<b?b:a; }template<class T> inline T minimize(T& a, const T& b) { return a=a<b?a:b; }char a[200];char str[50];void init(){memset(a,0,sizeof(a));a['A'] = 'A';a['E'] = '3';a['H'] = 'H';a['I'] = 'I';a['J'] = 'L';a['L'] = 'J';a['M'] = 'M';a['O'] = 'O';a['S'] = '2';a['T'] = 'T';a['U'] = 'U';a['V'] = 'V';a['W'] = 'W';a['X'] = 'X';a['Y'] = 'Y';a['Z'] = '5';a['1'] = '1';a['2'] = 'S';a['3'] = 'E';a['5'] = 'Z';a['8'] = '8';}int n;bool ispalindrome(){int i=0, j=n-1;while(i<j){if (str[i]=='0')str[i] = 'O';if (str[j]=='0')str[j] = 'O';if (str[i]!=str[j])return false;i++;j--;}return true;}bool ismirrior(){int i=0,j=n-1;while(i<=j){if (str[i]=='0')str[i] = 'O';if (str[j]=='0')str[j] = 'O';if (a[str[i]]==0)return false;if (a[str[i]]!=str[j])return false;i++;j--;}return true;}int main() {init();    freopen("G:\\Code\\1.txt","r",stdin);while(scanf("%s",str)!=EOF){n = strlen(str);bool flag1 = ispalindrome();bool flag2 = ismirrior();if (!flag1&&!flag2){printf("%s -- is not a palindrome.",str);}else if (!flag1&&flag2){printf("%s -- is a mirrored string.",str);}else if (flag1&&!flag2){printf("%s -- is a regular palindrome.",str);}else {printf("%s -- is a mirrored palindrome.",str);}puts("");puts("");}return 0;}

0 0
原创粉丝点击