Tandem Repeats? Educational Codeforces Round 163 (Rated for Div. 2) 1948D-CSDN博客
题意:
连续的两个相同的子序列最长为多少,输出他们总长度。
思路:
没想到暴力就能过。。
我还分类每种字母开始判断一下。(超时了)
双指针做法:Tandem Repeats? Educational Codeforces Round 163 (Rated for Div. 2) 1948D-CSDN博客
还可以开个数组来记录:
void solve()
{
string str;
cin >> str;
int n = str.size();
for (int len = n / 2; len > 0; len--)
{
int arr[5005] = { 0 };
for (int i = len; i < n ; i++)
{
if (str[i-len] == '?' || str[i] == '?' || str[i] == str[i - len])
{
arr[i] = 1;
arr[i] += arr[i - 1];
}
}
for (int i = len; i < n; i++)
{
if (arr[i] == len)
{
cout << len*2 << endl;
return;
}
}
}
cout << 0 << endl;
}