#include<bits/stdc++.h>
using namespace std;
string s, s1;
int t, maxn = 0, lena = 0, lenn = 0, a[40001];
bool check(int x, int y)
{
if(x + y - 1 >= lenn)
{
return 0;
}
for(int i = 0; i < y; i++)
{
if(s1[i + x] != s1[x + y - i - 1])
{
return 0;
}
}
return 1;
}
int main()
{
getline(cin, s);
lena = s.size();
for(int i = 0; i < s.size(); i++)
{
bool f = 0;
if(s[i] >= 'A' && s[i] <= 'Z')
{
s1[lenn] = s[i] - 'A' + 'a';
f = 1;
}
else if(s[i] >= 'a' && s[i] <= 'z')
{
s1[lenn] = s[i];
f = 1;
}
if(f)
{
a[lenn] = i;
lenn++;
}
}
for(int i = 0; i < lenn; i++)
{
for(int j = maxn + 1; j < 2001; j++)
{
if(check(i, j))
{
maxn = j;
t = i;
}
}
}
cout << maxn << endl;
for(int i = a[t]; i <= a[t + maxn - 1]; i++)
{
cout << s[i];
}
}
这段代码为什么RE?搞不懂写的没问题啊?目前已经查出导致RE的代码是:
a[lenn] = i;
到底该怎么改???