水题---判断镜像串和倒叙串

Posted joe2019

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了水题---判断镜像串和倒叙串相关的知识,希望对你有一定的参考价值。

题目链接:https://vjudge.net/problem/UVA-401

题意:判断是否为镜像串和倒序串

题解:分别判断即可:倒叙串逆序判断是否相等

                                    镜像串列出两个字符串判断是否相等

注意:1.注意输出格式,每一个输出后有一个空格  

           2.判断镜像串满足条件有两个:一是是否在该字符串中,二是是否相等,缺一不可

          3.C++的字符长度用.length()来求, strlen是计算char */char[]的,string非要用,需要用 c_str()转换成char * cout << strlen(s.c_str()),类似的也包括输出字符串%s

ac代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
using namespace std;
int main()
{
    char ch[]="AEHIJLMOSTUVWXYZ12358";
    char ch2[]="A3HILJMO2TUVWXY51SEZ8";
    string s;
    while(getline(cin,s))
    {
        int j,f1=1,f2=1;
        int len=s.length();
        for(int i=0;i<=len/2;i++)
            if(s[i]!=s[len-i-1])
        {
            f1=0;
            break;
        }
        for(int i=0;i<=len/2;i++)
        {
            for(j=0;ch[j]!=0;j++)
                if(ch[j]==s[i]) break;
            if(!ch[j]||ch2[j]!=s[len-i-1]) f2=0;
        }
        cout<<s;
        if(f1&&f2) printf(" -- is a mirrored palindrome. ",s);
        else if(!f1&&f2) printf(" -- is a mirrored string. ",s);
        else if(f1&&!f2) printf(" -- is a regular palindrome. ",s);
        else printf(" -- is not a palindrome. ",s);
        cout<<endl;
    }
    return 0;
}

    

以上是关于水题---判断镜像串和倒叙串的主要内容,如果未能解决你的问题,请参考以下文章

UVA401(回文子串和镜像串)

Java判断空字符串和对象是否为null

Java判断空字符串和对象是否为null

Java空字符串与null的区别和判断字符串是不是为空的方法

oracle存空字符串怎么会变成null

Java空字符串与null的区别和判断字符串是不是为空的方法