【51nod】1089 最长回文子串 V2(Manacher算法)
来源:互联网 发布:cmd无法打开mysql 编辑:程序博客网 时间:2024/06/06 17:09
1089 最长回文子串 V2(Manacher算法)
基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题
收藏
关注
回文串是指aba、abba、cccbccc、aaaa这种左右对称的字符串。
输入一个字符串Str,输出Str里最长回文子串的长度。
Input
输入Str(Str的长度 <= 100000)
Output
输出最长回文子串的长度L。
Input示例
daabaac
Output示例
5
#include<stdio.h>#include<string.h>char s[200010];int p[200010];int min(int a,int b){return a<b?a:b;}void f(){int l=strlen(s);for(int i=l;0<i;i--){s[i*2+1]='#';s[i*2]=s[i-1];}s[0]='*',s[1]='#';}int Manacher(){f();int mx = 0, id = 0,max=1;memset(p, 0, sizeof(p));for (int i = 1; s[i] != '\0' ; i++) { p[i] = mx > i ? min(p[2 * id - i], mx - i) : 1; while (s[i + p[i]] == s[i - p[i]]) p[i]++; if (i + p[i] > mx) { mx = i + p[i]; id = i; } max=max>p[i]?max:p[i];}return max-1;}int main(){int l,i;while(scanf("%s",s)!=EOF)printf("%d\n",Manacher());return 0;}
0 0
- 51nod 最长回文子串 V2(Manacher算法)
- 51nod 1089 最长回文子串 V2 (Manacher算法)
- 51nod-【1089 最长回文子串 V2(Manacher算法)】
- 51nod 1089 最长回文子串 V2(Manacher算法)
- 【51nod】1089 最长回文子串 V2(Manacher算法)
- 51nod 1089 最长回文子串 V2(Manacher算法)
- 51Nod 1089 最长回文子串 V2(Manacher算法)
- 51nod--1089 最长回文子串V2(Manacher 算法)
- 51Nod 1089 最长回文子串 V2(Manacher算法)
- 51nod 1089 最长回文子串 V2(Manacher算法)
- 51Nod-1089 最长回文子串 V2(Manacher算法)
- 51nod 1089 最长回文子串 V2(Manacher算法)
- 51Nod 1089 最长回文子串 V2(Manacher算法)
- 51Nod 1089 最长回文子串 V2 —— Manacher算法
- 51nod1089---最长回文子串 V2(51nod基础:Manacher算法)
- 51nod1089 最长回文子串 V2(Manacher算法)
- 51nod_1089 最长回文子串 V2(Manacher算法)
- 51nod 1089 最长回文字串V2(Manacher算法)
- Java编程思想-复用类总结
- android JNI java调用c/c++资料
- webservice学习笔记(一) - 基于JAX-WS的入门示例
- 用单例模式进行app运行时的判断来自哪,或者密码锁部分
- 网络编程基础知识2.0
- 【51nod】1089 最长回文子串 V2(Manacher算法)
- <fmt:formatNumber>标签用于格式化数字,百分比,货币。
- overflow+京东产品橱窗小案例
- Ajax
- 牛客网 二维数组中的查找
- Java编程思想-接口总结
- 用python画箱体图-python学习笔记21
- eclipse 配置tomcat插件
- Java 和JavaScript语法不一样的地方