G. 蚂蚁的镜像串

单点时限: 1.0 sec

内存限制: 512 MB

一只聪明的蚂蚁在学习了回文串之后,一直觉得回文串不够优美,所以它决定自己定义一种新的字符串——镜像串

所谓镜像串,就是对一个字符串进行一整个完全的翻转后,得到的新字符串与原字符串相同,也就是说左右镜像之后的字符串和原串相同。例如:AA就是一个镜像串,bb不是镜像串

现在给你一个字符串S,请你快速的判断字符串S是不是一个镜像串

字符串中出现的字母字体如下表

输入格式

第一行一个整数T  (1T100)代表有T组输入

接下来T行,每行输入一个长度小于等于105的字符串S 
保证每个字符串只包含大小写字母

输出格式

对于每组输入,判断S是否为镜像串

如果是,输出”YES”。否则输出”NO”。

每组输出占一行

样例

input
5
QAQ
TAT
oUo
oVo
XoX
output
NO
YES
YES
YES
YES

提示

mm,nn,uu也是镜像串

 这个题目的坑就是 bd  db  pq 和qp是镜像串 其他的就是,如果是奇数的话,必须找到中间的那个字符是否对称,如果不对称的话,,直接pass掉
AC代码:
#include<iostream>
#include<string>
using namespace std;
typedef long long ll;
int check(char x,char y){
    if(x=='A'&&y=='A'||x=='O'&&y=='O'||x=='T'&&y=='T'){
        return 1;
    }
    if(x=='H'&&y=='H'||x=='U'&&y=='U'||x=='V'&&y=='V'||x=='W'&&y=='W'){
        return 1;
    }
    if(x=='I'&&y=='I'||x=='X'&&y=='X'||x=='Y'&&y=='Y'||x=='i'&&y=='i'||x=='l'&&y=='l'){
        return 1;
    }
    if(x=='M'&&y=='M'||x=='m'&&y=='m'||x=='n'&&y=='n'||x=='o'&&y=='o'||x=='u'&&y=='u'){
        return 1;
    }
    if(x=='v'&&y=='v'||x=='w'&&y=='w'||x=='x'&&y=='x'){
        return 1;
    }
    if(x=='b'&&y=='d'||x=='d'&&y=='b')
        return 1;
    if(x=='p'&&y=='q'||x=='q'&&y=='p')
        return 1;
    return 0;
}
int judge(char s){
    
    if(s=='A'||s=='O'||s=='T'||s=='H'||s=='U'||s=='V'||s=='w'||s=='W'||s=='I'||s=='X')
        return 1;
    if(s=='Y'||s=='i'||s=='l'||s=='M'||s=='m'||s=='n'||s=='o'||s=='u'||s=='v'||s=='x')
        return 1;
    return 0;
}
int main(){
    int t;
    cin>>t;
    while(t--){
        string a;
        cin>>a;
        int x=0,y=a.size()-1;
        int flag=0;
        while(x!=y){
            if(check(a[x],a[y])){
                x++;
                y--;
            }
            else{
                flag=1;
                break;
            }
        }
        
        if(a.size()%2!=0){
            if(judge(a[a.size()/2])!=1){
                flag=1;
            }
        }
        
        if(flag) puts("NO");
        else puts("YES"); 
    }    
    
    return 0;
}
原文地址:https://www.cnblogs.com/Accepting/p/11297250.html