问
  • 板块灌水区
  • 楼主Leo11
  • 当前回复0
  • 已保存回复1
  • 发布时间2024/1/19 19:24
  • 上次更新2025/1/27 13:04:33
查看原帖
问
990387
Leo11楼主2024/1/19 19:24

P1210

#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;

到底该怎么改???

2024/1/19 19:24
加载中...