前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >洛谷1723 高手过愚人节

洛谷1723 高手过愚人节

作者头像
Yuyy
发布2022-06-28 18:42:36
2030
发布2022-06-28 18:42:36
举报
文章被收录于专栏:yuyy.info技术专栏

本文最后更新于 1170 天前,其中的信息可能已经有所发展或是发生改变。

代码语言:javascript
复制
// 洛谷1723 高手过愚人节.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<iostream>
#include<string>
#include<cstring>
#pragma warning(disable:4996)
using namespace std;

int main()
{
	int n, i=0;
	cin >> n;
	while (i < n)
	{
		int len,j,k,m,sum=0,sum1=0;
		string str;
		cin>>str;
		len = str.length();
		char *ch = new char[len];
		strcpy(ch, str.c_str());	
		/*
		for (j = 0; j < len; j++)
		{
			for (k = j+1; k < len; k++)
			{
				if (ch[j] == ch[k])
				{
					for (m = 0; m <= (j - i) / 2; m++)
					{

						if (ch[j + m + 1] != ch[k - m - 1])
							break;
						if (m == (j - i) / 2)
							sum1 = k-j+1;
					}
				}

				if (sum1>sum)
				{
					sum = sum1;
				}
				
			}
		}
		*/


		for (j = 1; j < 2 * len; j++)
		{

			if (j%2!=0&&ch[(j-1)/2] == ch[(j+1)/2])
			{
				m = 0;
				while ((j - 2*m-1) >= 0 && (j + 2*m+1)<2 * len)
				{
					if (ch[(j - 2 * m - 1)/2] != ch[(j + 2 * m + 1)/2])
						break;
					sum1 = 2 * (m+1);
					m++;
				}
			}

			if (j % 2 == 0 && ch[(j - 2)/2] == ch[(j + 2)/2])
			{
				m = 1;
				while ((j - 2 * m ) >= 0 && (j + 2 * m )<2 * len)
				{
					if (ch[(j - 2 * m)/2 ] != ch[(j + 2 * m)/2 ])
						break;
					sum1 = 2 * m+1;
					m++;
				}
			}

			if (sum1>sum)
			{
				sum = sum1;
			}
			
		}
		cout << sum;

		i++;
	}
	return 0;
}

Post Views: 175

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-4-15 1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档