rt,样例过了,也控制了最后的换行符
#include <iostream>
using namespace std;
string flaga = {"A 3 HIL JM O 2TUVWXY5"};
string flagb = {"1SE Z 8 "};
bool pal(string s)
{
string str = "";
for(int i = s.size() - 1; i >= 0; i--)
{
str += s[i];
}
if(str == s)return 1;
else return 0;
}
bool mir(string s)
{
string str = "";
for(int i = s.size() - 1; i >= 0; i--)
{
if(s[i] >= 'A' && s[i] <= 'Z')str += flaga[s[i] - 'A'];
else str += flagb[s[i] - '1'];
}
if(s == str)return 1;
else return 0;
}
int main()
{
string s;
cin >> s;
int fg = 0;
do
{
if(fg)cout << endl;
if(!pal(s) && !mir(s))cout << s << " -- is not a palindrome.";
else if(pal(s) && !mir(s))cout << s << " -- is a regular palindrome.";
else if(!pal(s) && mir(s))cout << s << " -- is a mirrored string.";
else if(pal(s) && mir(s))cout << s << " -- is a mirrored palindrome.";
fg = 1;
}while(cin >> s);
return 0;
}