1040 Longest Symmetric String (25 分)
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 分)相关推荐
- 1040 Longest Symmetric String (25 分)_15行代码AC
立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 Given a string, you are supposed to output the length of the long ...
- 1040 Longest Symmetric String (25 分)【难度: 一般 / 知识点: 最长回文子串】
https://pintia.cn/problem-sets/994805342720868352/problems/994805446102073344 方法一: 最朴素的做法, 枚举所有的子串 # ...
- PAT 1040 Longest Symmetric String (25)
1040 Longest Symmetric String (25)(25 分) Given a string, you are supposed to output the length of th ...
- 1040. Longest Symmetric String (25)
题目链接:http://www.patest.cn/contests/pat-a-practise/1040 题目: 1040. Longest Symmetric String (25) 时间限制 ...
- 1040. Longest Symmetric String (25)-PAT甲级真题
Given a string, you are supposed to output the length of the longest symmetric sub-string. For examp ...
- 1040 Longest Symmetric String
1040 Longest Symmetric String (25 分) Given a string, you are supposed to output the length of the lo ...
- PAT 甲级 1040 Longest Symmetric String
1040 Longest Symmetric String 题目大意:给出一个字符串,求出最长的回文子串的长度 思路:从第一个字符开始往后遍历,每次遍历第一个字符不动,从下一个字符开始找起,若是有回文 ...
- 1040 Longest Symmetric String
Given a string, you are supposed to output the length of the longest symmetric sub-string. For examp ...
- 1040 Longest Symmetric String 需再做
解题思路 本题属于最长回文子串专题下.与之前的LIS和LCS的动规有两个较大的不同 1. 虽然最后也是要求长度,但是长度信息不再蕴含在dp数组当中,dp[i][j]表示的仅仅是从s[i]起s[j]止这 ...
- 浙大pat1040 Longest Symmetric String(25 分)
1040 Longest Symmetric String(25 分) Given a string, you are supposed to output the length of the lon ...
最新文章
- MongoDB 维护Replica Set
- Install matplotlib Error: src/ft2font.h:16:22: fatal error: ft2build.h: No such file or directory
- Django使用python-docx-template,并根据模板来生成有数据的word文档
- pytorch图像检索评价指标MAP
- Java学习个人备忘录之构造函数this
- java server faces
- c语言 多个线程对同一变量执行memcpy_你可曾听过网络编程中应用线程本地存储?...
- MySQL优化详解(四)——MySQL缓存设置
- shell中expr强大功能(2)
- winsock 收发广播包
- 看完微软大神写的 求平均值代码,我意识到自己还是 too young 了
- 14.5【结构体指针编程】小科同学学习了数组和结构体,认真进行编程练习,顺利完成了老师布置的20道课外编程题后,他想起了科比20年的职业生涯数据。
- vue结合高德地图V2.0(JSAPI key搭配代理服务器并携带安全密钥转发)
- Monotonic Matrix(lemma定理)
- SQL中where in的用法
- 【C语言】分类统计字符个数(多行输入字符串)
- Set 直接转成 数组
- 执行xpath时提示,需要命名空间管理器或XsltContext。此查询具有前缀、变量或用户定义的函数
- Android Studio for Mac 中文文件名乱码问题
- uni-app常见问题以及解决方案