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