博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1089 最长回文子串 V2(Manacher算法)
阅读量:5998 次
发布时间:2019-06-20

本文共 1611 字,大约阅读时间需要 5 分钟。

基准时间限制:1
 秒 空间限制:131072
 KB 分值:
 0
 
 收藏
 关注
回文串是指aba、abba、cccbccc、aaaa这种左右对称的字符串。
输入一个字符串Str,输出Str里最长回文子串的长度。
 
Input
输入Str(Str的长度 <= 100000)
Output
输出最长回文子串的长度L。
Input示例
daabaac
Output示例
5
相关问题
最长回文子串
 
0
 
回文串划分 V2
 
640
 
回文串划分
 
40
 
回文字符串
 
10
 
//O(n) manacher算法 #include
#include
#include
using namespace std;const int N=1e6+5;int l,len,p[N<<1];char s[N],S[N<<1];void manacher(){ int ans=0,id=0,mx=-1; for(int i=1;i
i) p[i]=min(p[id*2-i],id+mx-i); while(i-p[i]-1>=0&&i+p[i]+1<=l&&S[i-p[i]-1]==S[i+p[i]+1]) p[i]++; if(id+mx

 

//O(nlogn) 字符串哈希#include
#include
#include
using namespace std;typedef int i64;const int N=1e6+5;int n,m,ans,a[N];char s[N];i64 P,pow[N],hash_l[N],hash_r[N];void get_hash(){ pow[0]=1; for(int i=1;i<=m;i++) pow[i]=pow[i-1]*P; for(int i=1;i<=m;i++) hash_r[i]=hash_r[i-1]*P+a[i]; for(int i=m;i>=1;i--) hash_l[i]=hash_l[i+1]*P+a[i]; }int main(){ P=29; scanf("%s",s+1); n=strlen(s+1); for(int i=1;i<=n;i++){ a[++m]='#'; a[++m]=s[i]-'A'; } a[++m]='#'; get_hash(); int l,r,mid; for(int i=1;i<=m;i++){ l=0; if(i-1
1){ mid=l+r>>1; i64 hash_to_l=hash_r[i-1]-hash_r[i-mid-1]*pow[mid]; i64 hash_to_r=hash_l[i+1]-hash_l[i+mid+1]*pow[mid]; if(hash_to_l==hash_to_r) l=mid; else r=mid; } ans=max(ans,l); } printf("%d",ans); return 0;}

 

 

转载于:https://www.cnblogs.com/shenben/p/6252733.html

你可能感兴趣的文章
struts2 Result Type四个常用转跳类型
查看>>
ArcGIS IQueryFilter接口
查看>>
《国富论》西方经济学的“圣经”——自利的人性是资本主义市场经济的基本假设,财富的源泉是劳动,钱变成可再生的钱“资产”而不是负债...
查看>>
ios5--计算器
查看>>
Node.js返回JSONP
查看>>
Intellij IDEA 使用小结
查看>>
动态加载外部.js文件时候,javascript的执行顺序问题
查看>>
【循序渐进学Python】5.Python常用流程控制及其他语句
查看>>
parquet文件格式——本质上是将多个rows作为一个chunk,同一个chunk里每一个单独的column使用列存储格式,这样获取某一row数据时候不需要跨机器获取...
查看>>
换掉Tomcat默认图标
查看>>
并发编程网
查看>>
pandas入门
查看>>
正确汉化pycharm
查看>>
HTML5与后台服务器的数据流动问题
查看>>
关于Java反射机制的几个问题
查看>>
本周个人进步要点20160904
查看>>
【OpenCV学习】图像亮度、对比度调节(伽马校正)
查看>>
Visual Studio DSL 入门 6---DSL的图形表示1
查看>>
EonerCMS——做一个仿桌面系统的CMS(二)
查看>>
Redis笔记(六)Redis的消息通知
查看>>