水红无输出悬6关求助
查看原帖
水红无输出悬6关求助
765461
zhangmingsheng3521楼主2023/9/14 22:53

rt.代码如下: a是存储数,数组的a[40][]用于存储数的长度,maxn是最大回文数,b判断是否是回文数

#include"bits/stdc++.h"
using namespace std;
int a[41][10003];
int maxn[41];
bool b[10003];
int main()
{
	memset(maxn,0,sizeof(maxn));
	memset(b,true,sizeof(b));
	int n,m;
	string s;
	scanf("%d",&n);
	for (int i=1;i<=n;i++)
	{
		cin>>s;
		m=s.size();
		for (int j=1;j<=m;j++)
		{
			a[j][i]=int(s[j-1]);
		}
		a[40][i]=m;
	}
	for (int i=1;i<=n;i++)
	{
		for (int j=1;j<=a[40][i];j++)
		{
			if (a[j][i]!=a[a[40][i]-j][i])
			{
				b[i]=false;
				continue;
			}
		}
	}
	for (int i=1;i<=n;i++)
	{
		if (b[i])
		{
			if (a[40][i]>maxn[40])
			{
				for (int j=1;j<=a[40][i];j++)
				{
					maxn[j]=a[j][i];
				}
				maxn[40]=a[40][i];
				break;
			} 
			if (a[40][i]==maxn[40])
			{
				for (int j=1;j<=maxn[40];j++)
				{
					if (a[j][i]>maxn[j])
					{
						for (int j=1;j<=a[40][i];j++)
				        {
					       maxn[j]=a[j][i];
				        }
				       maxn[40]=a[40][i];
				       continue;
					}
					if (a[j][i]<maxn[j])
					{
						continue;
					}
				}
			}
		}
	}
	for (int i=1;i<=maxn[40];i++) 
	{
		printf("%d",maxn[i]);
	}
	return 0;
}
2023/9/14 22:53
加载中...