1040 Longest Symmetric String (25 分)

Given a string, you are supposed to output the length of the longest symmetric sub-string. For example, given Is PAT&TAP symmetric?, the longest symmetric sub-string is s PAT&TAP s, hence you must output 11.

Input Specification:

Each input file contains one test case which gives a non-empty string of length no more than 1000.

Output Specification:

For each test case, simply print the maximum length in a line.

Sample Input:

Is PAT&TAP symmetric?

Sample Output:

11

马拉车模板题

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn=1010;
char beginn[maxn],endd[maxn];
int len[maxn];
int  tralation()
{int gg=strlen(beginn);int noww=0;endd[0]='&';for(int i=0;i<gg;i++){endd[++noww]='#';endd[++noww]=beginn[i];}endd[++noww]='#';return noww;
}
int Manacher(int total)
{int maxx = 0;int mx = 0,id = 0; //id表示的最大回文的中心点是哪一个 而mx表示的是最大回文的中心点的最远的边界是哪一个 for(int i =1;i<=total;i++){if(i<mx) //如果此刻 i的点比mx还要小的话说明 在mx-i处这边是回文 然后在比较一下 len[i] = min(mx - i,len[2*id-i]); //因为2*id - i 和 i 他们是相对于id对称的 所以说吧 就是要比较mx-i和len[2*id-i] ;else len[i] = 1; //如果此刻i的点比边界还要大的话 那就需要从一开始加了 while(endd[i+len[i]]==endd[i-len[i]])len[i]++;if(i+len[i]>mx){mx = i+len[i];id = i; }   maxx = max(maxx,len[i]);} return maxx-1;
}
int main()
{scanf("%[^\n]",beginn);int total = tralation();int ans = Manacher(total);printf("%d\n",ans);return 0;
}

1040 Longest Symmetric String (25 分)相关推荐

  1. 1040 Longest Symmetric String (25 分)_15行代码AC

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 Given a string, you are supposed to output the length of the long ...

  2. 1040 Longest Symmetric String (25 分)【难度: 一般 / 知识点: 最长回文子串】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805446102073344 方法一: 最朴素的做法, 枚举所有的子串 # ...

  3. PAT 1040 Longest Symmetric String (25)

    1040 Longest Symmetric String (25)(25 分) Given a string, you are supposed to output the length of th ...

  4. 1040. Longest Symmetric String (25)

    题目链接:http://www.patest.cn/contests/pat-a-practise/1040 题目: 1040. Longest Symmetric String (25) 时间限制 ...

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

    Given a string, you are supposed to output the length of the longest symmetric sub-string. For examp ...

  6. 1040 Longest Symmetric String

    1040 Longest Symmetric String (25 分) Given a string, you are supposed to output the length of the lo ...

  7. PAT 甲级 1040 Longest Symmetric String

    1040 Longest Symmetric String 题目大意:给出一个字符串,求出最长的回文子串的长度 思路:从第一个字符开始往后遍历,每次遍历第一个字符不动,从下一个字符开始找起,若是有回文 ...

  8. 1040 Longest Symmetric String

    Given a string, you are supposed to output the length of the longest symmetric sub-string. For examp ...

  9. 1040 Longest Symmetric String 需再做

    解题思路 本题属于最长回文子串专题下.与之前的LIS和LCS的动规有两个较大的不同 1. 虽然最后也是要求长度,但是长度信息不再蕴含在dp数组当中,dp[i][j]表示的仅仅是从s[i]起s[j]止这 ...

  10. 浙大pat1040 Longest Symmetric String(25 分)

    1040 Longest Symmetric String(25 分) Given a string, you are supposed to output the length of the lon ...

最新文章

  1. MongoDB 维护Replica Set
  2. Install matplotlib Error: src/ft2font.h:16:22: fatal error: ft2build.h: No such file or directory
  3. Django使用python-docx-template,并根据模板来生成有数据的word文档
  4. pytorch图像检索评价指标MAP
  5. Java学习个人备忘录之构造函数this
  6. java server faces
  7. c语言 多个线程对同一变量执行memcpy_你可曾听过网络编程中应用线程本地存储?...
  8. MySQL优化详解(四)——MySQL缓存设置
  9. shell中expr强大功能(2)
  10. winsock 收发广播包
  11. 看完微软大神写的 求平均值代码,我意识到自己还是 too young 了
  12. 14.5【结构体指针编程】小科同学学习了数组和结构体,认真进行编程练习,顺利完成了老师布置的20道课外编程题后,他想起了科比20年的职业生涯数据。
  13. vue结合高德地图V2.0(JSAPI key搭配代理服务器并携带安全密钥转发)
  14. Monotonic Matrix(lemma定理)
  15. SQL中where in的用法
  16. 【C语言】分类统计字符个数(多行输入字符串)
  17. Set 直接转成 数组
  18. 执行xpath时提示,需要命名空间管理器或XsltContext。此查询具有前缀、变量或用户定义的函数
  19. Android Studio for Mac 中文文件名乱码问题
  20. uni-app常见问题以及解决方案

热门文章

  1. WPF下通过附加属性实现单实例启动
  2. ubuntu 8.10 可用的源
  3. Java经典设计模式(3):十一种行为型模式(附实例和详解)
  4. 个人信息保护须形成更大合力
  5. Highcharts构建空饼图
  6. 你觉得你非常了解Javascript?
  7. zabbix2.4.6升级zabbix3.0.8后无法发送报警邮件
  8. python 利用urllib2通过指定网页访问url,并捕获内容
  9. Windows与Linux比较:相似与不同
  10. maven helper解决依赖冲突问题