zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    jQuery 语法
    jQuery 简介
    把数据存储到 XML 文件
    XML 注意事项
    XML DOM (Document Object Model) 定义了访问和操作 XML 文档的标准方法。
    通过 PHP 生成 XML
    XML 命名空间(XML Namespaces)
    XML to HTML
    XMLHttpRequest 对象
    使用 XSLT 显示 XML
  • 原文地址:https://www.cnblogs.com/Accepting/p/11297250.html
Copyright © 2011-2022 走看看