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; }
相关文章推荐
- C++学习笔记(字符串string、vector_deque、queue,multiset、map、multimap、容器拷贝问题)(复制粘贴,方便后面翻阅)
- 使用MultiValueMap巧妙解决拼字符串问题
- 第十章 Scala 容器(四):使用Map方法解决问题
- C++学习笔记(字符串string、vector_deque、queue,multiset、map、multimap、容器拷贝问题)
- boost.cmake: 方便解决boost的升级问题
- Python字符串的encode与decode研究心得乱码问题解决方法
- 解决“将截断字符串或二进制数据。语句已终止……”的问题
- firefox英文字符串不自动换行问题的解决方法
- 字符串碎片(字符串)//strcmp函数的奇巧淫技(偷笑)//一维数组转化为二维数组解决问题
- 解决某些.net不方便解决的问题,解决方法就是 DHTML
- <c++>利用deque容器,解决约瑟夫环问题
- C++模板类 容器之map 及 对象副本 深/浅拷贝 等问题
- Eval函数解决字符串JS在IE下不执行的问题
- 用enum类型数据解决switch case选择字符串的问题
- 实现一些字符串操作标准库函数、解决一些字符串问题
- 大数问题:用字符串解决大数相加和相乘
- MSSQL 将截断字符串或二进制数据问题的解决方法
- 解决bootStrap与goole map api冲突问题
- Java的中英文混合截取字符串的问题解决方法
- 基于ERP程序的公共代码中出现的问题及过度封装不方便维护的解决办法