思路:首先我们要枚举长度,然后从前往后遍历,判断是否存在改长度的重复串。
代码:
void solve(){string s;cin >> s;int n = s.size();int ans = 0;for(int len = n / 2;len >= 1;len --){int t = 0;for(int i = 0;i + len < n;i ++){if(s[i] == s[i + len] || s[i] == '?' || s[i + len] == '?'){t += 1;if(t == len){ans = max(ans,len);break;}}else{t = 0;}}}cout << ans * 2 << endl;
}