P1210 WA24求助
查看原帖
P1210 WA24求助
372909
czcyf楼主2022/7/7 19:25

rt,望大佬帮助,谢谢! 上WA代码:

#include <bits/stdc++.h>
using namespace std;
int pos[22022];
int maxn=-1,t;
void detect(string s,int i)
{
	int cnt,r,l;
	if (s[i-1]==s[i]&&s[i+1]!=i)
	{
		cnt=2,l=i-2,r=i+1;
	}
	if (s[i+1]==s[i]&&s[i-1]!=i)
	{
		cnt=2,l=i-1,r=i+2;
	}
	if ((s[i]!=s[i-1]&&s[i]!=s[i+1])||(s[i-1]==s[i]&&s[i]==s[i+1]))
	{
		cnt=1,l=i-1,r=i+1;
	}
	while(l>=0&&r<s.length())
	{
		//cout << l << " " << r << endl;
		if (s[l]==s[r]) cnt+=2;
		else break;
		l--,r++;
	}
	if (cnt>maxn)
	{
		t=l+1;
		maxn=cnt;
	}
	return;
}
int main()
{
	string s,s1;
	getline(cin,s);
	int cur=0;
	for (int i=0;i<s.length();i++)
	{
		if (isalpha(s[i]))
		{
			s1+=tolower(s[i]);
			pos[cur]=i;
			cur++;
		}
	}
	//cout << s1 << endl;
	for (int i=1;i<s.length()-1;i++)
	{
		detect(s1,i);
		//cout << i << endl;
	}
	cout << maxn << endl;
	//cout << t << endl;
	for (int i=pos[t];i<=pos[t+maxn-1];i++)
	{
		cout << s[i];
	}
	cout << endl;
	return 0;
}
2022/7/7 19:25
加载中...