C++代码:
#include <cstdio> #include <cstring> int main() { char a[3000]; char s[3000]; char str[]={'A','*','*','*','3', '*','*','H','I','L', '*','J','M','*','O', '*','*','*','2','T', 'U','V','W','X','Y', '5','0','1','S','E','*', 'Z','*','*','8','*'}; while(scanf("%s",a)!=EOF) { strcpy(s,a); int isp=0,ism=0; int len=strlen(s); int i,j; for(i=0,j=len-1;i<=j;++i,--j) { if((s[i]=='0'||s[i]=='O')&&(s[j]=='0'||s[j]=='O')) continue; else if(s[i]!=s[j]) break; } if(i>j)isp=1; for(i=0;i<len;++i) { if(s[i]>='A'&&s[i]<='Z') s[i]=str[s[i]-'A']; else s[i]=str[s[i]-'0'+26]; } for(i=0,j=len-1;i<len;++i,--j) { if((a[i]=='0'||a[i]=='O')&&(s[j]=='0'||s[j]=='O')) continue; else if(a[i]!=s[j]) break; } if(i==len) ism=1; if(isp==0&&ism==0) printf("%s -- is not a palindrome.\n\n",a); else if(isp==1&&ism==0) printf("%s -- is a regular palindrome.\n\n",a); else if(isp==0&&ism==1) printf("%s -- is a mirrored string.\n\n",a); else printf("%s -- is a mirrored palindrome.\n\n",a); } return 0; }
原文链接: https://www.cnblogs.com/dyllove98/p/3188331.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/95691
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!