题解 CF420A 【Start Up】

题目

注意

符合题意的字符串,除了要是一个回文字符串,还必须由全部由 轴对称字母 组成。

思路

  • 判断是否含有非轴对称字母
  • 判断是否为回文字符串

以下是所有的轴对称字母:

AHIMOTUVWXY

这里介绍一个string类型操作,可以快速反转字符串。

string str;
reverse(str.begin(),str.end());

这样操作后的 \(str\) 就是一个水平翻转后的字符串了。
然后就可以愉快的与原来的字符串比较啦~

其实我就是为了做回文串的题而学会的操作。


代码:

#include<bits/stdc++.h>
using namespace std;
string a;
string str;
int main()
{
    cin>>a;     //使用string处理字符串题目更方便
    for(int i=0;i<a.length();i++) //循环判断字符串中的每个字母是否为非轴对称字母
    {
        if(a[i]!='A'&&a[i]!='H'&&a[i]!='I'&&a[i]!='M'&&a[i]!='O'&&a[i]!='T'&&a[i]!='U'&&a[i]!='V'&&a[i]!='W'&&a[i]!='X'&&a[i]!='Y')
        {
            cout<<"NO"<<endl;
            return 0;
        }
    }
    str = a ;   //用另一个string存一下翻转的字符串
    reverse(str.begin(),str.end());
    if(a!=str)
    {
        cout<<"NO"<<endl;
        return 0;
    }
    cout<<"YES"<<endl;   //如果能跑到这里,就一定是符合要求的字符串
    return 0;
}

posted @ 2021-04-30 22:52  我和鱼过不去  阅读(82)  评论(0)    收藏  举报