UVA401(回文子串和镜像串)
可以先设一个常量镜像串,直接返回比较
#include <iostream> #include <string> #include <cstring> #include <cstdlib> #include <cstdio> #include <cmath> #include <algorithm> #include <stack> #include <cctype> using namespace std; #define mem(a,b) memset(a,b,sizeof(a)) #define pf printf #define sf scanf #define spf sprintf #define debug printf("!\n") #define INF 10000 #define MAXN 5010 #define MAX(a,b) a>b?a:b #define blank pf("\n") #define LL long long const char* rev = "A 3 HIL JM O 2TUVWXY51SE Z 8 "; const char* msg[]={"is not a palindrome.","is a regular palindrome.","is a mirrored string.","is a mirrored palindrome."}; char str[MAXN]; char change(char ch) { if(isalpha(ch)) return rev[ch-'A']; return rev[ch-'0'+25]; } int main() { while(~sf("%s",str)) { int p=1,m=1,i; int len = strlen(str); for(i=0;i<(len+1)/2;i++) { if(str[i]!=str[len-i-1]) p=0; if(change(str[i])!=str[len-i-1]) m=0; } pf("p:%d m:%d\n",p,m); pf("%s -- is %s\n",str,msg[p+m*2]); } } /* NOTAPALINDROME ISAPALINILAPASI 2A3MEAS ATOYOTA */
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步