简单题简单做

首先要找到最短的回文串,那我们不妨来想,如果一个回文串他的长度为100000000那么可以推出它一定存在更短的回文串,那么一直推下去,也就是最短的回文串有几种情况,答案是两种,第一种,长为2,比如aa两个相同的字母,第二种长为3比如aba这样的。有人问了,存不存在长度为4的情况呢,如果存在长度为4的,如aabb或者aaaaa,那么一定可以推出长度为2的更短的回文串,长度为5的也同理.....。因此我们只需要判断一个字符串是否存在长为2,或者长为3的字串即可,如果都不存在就输出-1

#include <bits/stdc++.h>
using namespace std;
int main() {
    string s;
    cin >> s;
    int n = s.length();
    // 检查长度 2 的回文
    for (int i = 0; i < n - 1; i++) {
        if (s[i] == s[i + 1]) {
            cout << 2 << endl;
            return 0;
        }
    }
    // 检查长度 3 的回文
    for (int i = 0; i < n - 2; i++) {
        if (s[i] == s[i + 2]) {
            cout << 3 << endl;
            return 0;
        }
    }
    cout << -1 << endl;
    return 0;
}