#include <iostream> using namespace std; // 从中心点向两边延伸比较是否相等,相等自动同时向两边移动一位在比较; // 知道不想等计算出长度; int getLength(string s, int l, int r) { while (l >= 0 && r < s.size()) { if (s[l] == s[r]) { l--; r++; } else { break; } } return r - l - 1; // 因为相等之后已经各自移动了一位,需要减去 1; } int main() { string line; while (cin >> line) { if (line.size() == 0) { cout << "0" << endl; continue; } if (line.size() == 1) { cout << "1" << endl; continue; } int maxLen = 0; for (int i = 0; i < line.size(); i++) { // 计算奇数个数的字符 int len_1 = getLength(line, i, i); // 计算 偶数 个数的字符 int len_2 = getLength(line, i, i + 1); len_1 = max(len_1, len_2); maxLen = max(len_1, maxLen); } cout << maxLen << endl; } return 0; } // 64 位输出请用 printf("%lld")