intmain() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); string s; for (; getline(cin, s);) { int res = -1; // for each center for (int i = 0; i < s.size(); i++) { // odd size int l = i - 1, r = i + 1; for (; l >= 0 && r <= s.size() && s[l] == s[r]; l--, r++); int len = r - 1 - (l + 1) + 1; res = max(res, len); // even size l = i, r = i + 1; for (; l >= 0 && r <= s.size() && s[l] == s[r]; l--, r++); len = r - 1 - (l + 1) + 1; res = max(res, len); } cout << res << endl; } return0; }
inlinestringranger(string &s, int lc, int rc) { if (s[lc] != s[rc]) return""; int l = lc - 1, r = rc + 1; for (; l >= 0 && r <= s.size() - 1 && s[l] == s[r]; --l, ++r); ++l, --r; return s.substr(l, r - l + 1); }
inlinestringranger(string &s, int center) { string res; int l = center - 1, r = center + 1; for (; l >= 0 && r <= s.size() - 1 && s[l] == s[r]; --l, ++r); ++l, --r; return s.substr(l, r - l + 1); }
intmain() { cin.tie(nullptr)->sync_with_stdio(false); string s; for (; cin >> s;) { int n = s.size(); int res = -1; // 最长回文子串长度为奇数 for (int i = 0; i < n; i++) { string t = ranger(s, i); res = max(res, (int)t.size()); // cout << t << endl; } // 最长回文子串长度为偶数 for (int i = 0; i < n - 1; i++) { string t = ranger(s, i, i + 1); if (t != "") res = max(res, (int)t.size()); // cout << t << endl; } cout << res << endl; } return0; }
publicclassMain{ publicstaticvoidmain(String[] args){ Scanner in = new Scanner(System.in); for (; in.hasNext();) { String s = in.next(); int res = -1; for (int i = 0, n = s.length(); i < n; i++) { int l = i - 1, r = i + 1; for (; l >= 0 && r < n && s.charAt(l) == s.charAt(r); --l, ++r); ++l; --r; res = Math.max(res, r - l + 1); l = i; r = i + 1; for (; l >= 0 && r < n && s.charAt(l) == s.charAt(r); --l, ++r); ++l; --r; res = Math.max(res, r - l + 1); } System.out.println(res); } } }