#include<bits/stdc++.h> using namespace std; // 定义函数判断是否为偶数回文,因为镜面只能翻倍且前后对应 bool judge(char c[]) { if (strlen(c) % 2 == 0) { for (int i = 0; i < strlen(c) / 2; i++) { if (c[i] != c[strlen(c) - i - 1]) { return false; } } return true; } return false; } int main() { char c[200]; cin >> c; while (judge(c)) { // 只要在长度一半的位置存入一个'\0'即可实现数组去掉一半 c[strlen(c) / 2] = '\0'; } cout << strlen(c); return 0; } /************************************************************** Problem: 1134 User: wangyiyang Language: C++ Result: Accepted Time:8 ms Memory:2072 kb ****************************************************************/