您的位置:首页 > 其它

map容器在解决字符串问题的方便之处

2013-07-11 17:42 99 查看
题目:UVa OJ 第401题 Palindromes

题目链接:
点击打开链接

代码如下:

#include <iostream>
#include <string>
#include <map>
#include <algorithm>
using namespace std;
int main()
{
map<char,char> m;
m['E']='3';m['3']='E';m['J']='L';m['L']='J';
m['S']='2';m['2']='S';m['Z']='5';m['5']='Z';
m['A']='A';m['B']='a';m['C']='b';m['D']='c';
m['F']='d';m['G']='e';m['H']='H';m['I']='I';
m['K']='f';m['M']='M';m['N']='g';m['O']='O';
m['P']='h';m['Q']='i';m['R']='j';m['T']='T';
m['U']='U';m['V']='V';m['W']='W';m['X']='X';
m['Y']='Y';m['4']='k';m['6']='l';m['7']='m';
m['9']='n';m['1']='1';m['8']='8';
int i,flag,Flag;
string s,st;
while(cin>>s)
{
flag=0,Flag=0;
st=s;
reverse(s.begin(),s.end());
if(s==st) flag=1;
for(i=0;i<s.size();i++)
s[i]=m[s[i]];
if(s==st) Flag=1;
if(flag==1&&Flag==1)
cout<<st<<" -- is a mirrored palindrome."<<endl;
else if(flag==0&&Flag==1)
cout<<st<<" -- is a mirrored string."<<endl;
else if(flag==0&&Flag==0)
cout<<st<<" -- is not a palindrome."<<endl;
else if(flag==1&&Flag==0)
cout<<st<<" -- is a regular palindrome."<<endl;
cout<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: