PAT L2-008. 最长对称子串

原创 2018年04月15日 12:24:53

L2-008. 最长对称子串

时间限制
100 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
陈越

对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定"Is PAT&TAP symmetric?",最长对称子串为"s PAT&TAP s",于是你应该输出11。

输入格式:

输入在一行中给出长度不超过1000的非空字符串。

输出格式:

在一行中输出最长对称子串的长度。

输入样例:
Is PAT&TAP symmetric?
输出样例:
11

解题思路:

找定一个中间字符,然后往两边字符扩散,相等则对称。这里要注意最长对称字串是偶数的情况

代码如下:

#include<iostream>
#include<cstring>
using namespace std;
int main(){
	char a[1005];
	gets(a);
	int max=1,len=strlen(a);//最短对称字串是1 即一个字符 
	for(int i=1;i<len;i++){//最长对称字串是单数 
		int num=1;
		for(int j=i-1,k=i+1;j>=0&&k<len;j--,k++,num+=2){
			if(a[j]!=a[k])break;
		}
		if(num>max)max=num;
	}
	for(int i=0;i<len;i++){//最长对称字串是偶数 
		int num=0;
		for(int j=i,k=i+1;j>=0&&k<len;j--,k++,num+=2){
			if(a[j]!=a[k])break;
		}
		if(num>max)max=num;
	}
	cout<<max<<"\n";
	return 0;
} 

PATL2-008:最长对称子串(dp)

L2-008. 最长对称子串 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题...
  • junior19
  • junior19
  • 2017年03月12日 16:14
  • 327

L2-008. 最长对称子串----暴力+dp+Manacher

L2-008. 最长对称子串 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题...
  • bless924295
  • bless924295
  • 2017年03月15日 21:47
  • 463

PAT L2-008. 最长对称子串(25) (暴力,Manacher算法和DP解决)

1000的长度,100ms,o(N^2)的复杂度是可以过的,那就暴力枚举吧, 每次枚举起点和终点没如果此子串是回文串,那终点-起点+1即为回文串的长度,即可求出最大长度. 中间有个小问题,看代码注释....
  • hurmishine
  • hurmishine
  • 2017年03月24日 17:23
  • 706

PAT L2-008 最长对称子串

L2-008. 最长对称子串 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 对给定的字符串,本题要求你输...
  • changjiale110
  • changjiale110
  • 2018年03月05日 19:27
  • 44

团体程序设计天梯赛L2-008 最长对称子串

L2-008. 最长对称子串 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题...
  • a664607530
  • a664607530
  • 2017年03月01日 17:57
  • 191

L2-008. 最长对称子串(manacher算法)

今天学习了一下manacher算法,比较难理解的是这一步,mx表示的是当前的对称子串的最右端, id表示的这个子串的中间这个点。2*id-i 表示 i 关于 id 的对称点 j p[i]=mx>i?...
  • sinat_30126425
  • sinat_30126425
  • 2016年07月13日 22:09
  • 303

L2-008 最长对称子串

原题:https://www.patest.cn/contests/gplt/L2-008 这道题可真是把我累的够呛,一开始是方法错了,后来是题目定义不清晰理解错误,最后终于在第12次提交成功,废话不...
  • zark721
  • zark721
  • 2017年03月20日 21:46
  • 184

1040. Longest Symmetric String (25)-PAT甲级真题

1040. Longest Symmetric String (25) Given a string, you are supposed to output the length of the l...
  • liuchuo
  • liuchuo
  • 2016年08月06日 22:09
  • 181

L2-008. 最长对称子串

L2-008. 最长对称子串 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 ...
  • qq_34952846
  • qq_34952846
  • 2016年05月15日 20:56
  • 742

L2-008. 最长对称子串(最长回文串)

【题目链接】 https://www.patest.cn/contests/gplt/L2-008 题目意思 求最长回文串。 解题思路 直接用Manacher算法,秒过,下面就一标准模板...
  • pashuihou
  • pashuihou
  • 2018年01月29日 19:44
  • 68
收藏助手
不良信息举报
您举报文章:PAT L2-008. 最长对称子串
举报原因:
原因补充:

(最多只允许输入30个字)