思路:简单模拟即可。判断一下是不是回文,是回文看长度是不是偶数。是偶数的话,说明又可能是回文。依次这样处理。但是只要长度为奇数则一定是原来的长度直接输出即可。
#include<iostream> #include<cstring> using namespace std; const int maxn = 100000 + 10; char num[maxn]; bool flag(int x){ int p = 0, q = x-1; while (p < q&&num[p] == num[q]){ ++p; --q; } if (p < q)return 0; return 1; } int main(){ cin >> num; int len = strlen(num); if (len % 2){ cout << len << endl; return 0; } while (len / 2){ if (flag(len))len /= 2; else break; if (len % 2)break; } cout << len << endl; }
原文地址:https://www.cnblogs.com/ALINGMAOMAO/p/10386691.html
时间: 2024-10-12 13:42:00