有点像DP的思想,写写就会做。

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int maxn=1e7+5;
  4. char a[maxn];
  5. char s[2*maxn];
  6. int len[maxn*2];
  7. int manachar(char *p)
  8. {
  9. int le=strlen(p);
  10. for(int i=0;i<le;i++)
  11. {
  12. s[i*2+2]=p[i];
  13. s[i*2+1]='+';
  14. //cout<<s[i*2+1]<<s[i*2+2];
  15. }
  16. s[0]='^',s[le*2+1]='+';//选取不可能出现的字符即可。
  17. //预处理字符串成为一个奇数串;
  18. int Max=0,pos=0,ans=0;
  19. le=2*le+1;
  20. for(int i=1;i<=le;i++)
  21. {
  22. if(Max>i)
  23. {
  24. len[i]=min(len[2*pos-i],Max-i);
  25. }
  26. else len[i]=1;
  27. while(s[i-len[i]]==s[i+len[i]])len[i]++;
  28. ans =max(len[i],ans);
  29. if(i+len[i]>Max)
  30. {
  31. Max=len[i]+i;
  32. pos=i;
  33. }
  34. }
  35. return ans-1;
  36. }
  37. int main()
  38. {
  39. int cnt=0;
  40. while(~scanf(" %s",a)){
  41. if(a[0]=='E')break;
  42. printf("Case %d: %d\n",++cnt,manachar(a));
  43. memset(a,0,sizeof(a));
  44. }
  45. return 0;
  46. }
  47. /*
  48. ..ii7vJJuJ1juJJYL7r::.
  49. :71XPKK5IU1JjssLYLJYJJUU5SKSX1Li.
  50. .r1KPX2Yv77r7r7r777r7r7r7r7r7r7777sJ25XUJi.
  51. :sPPXY7r7r7r77LrvL7r7r7r7r7r7r7r7r7r7r7777vYUSKJr. .
  52. :7ISKSX5Ur :1bKu7777r7r7777ULr7us7777777r7r7r7r7r77777r7r77v7s2K27. :vI5K5KSILi
  53. rS51v7777vLXg vbqu7777r777777777rrr7r7r777r7r777r777r7r777r7r7r777r77L1qUi .Equvv777v7u2q1i
  54. .5577777v77r7iXSvb577r7r7r7r7777777717rLjr7r77777777777r777r777r7r7r7r7r7777L5SLgv77777r7r7777YIXi
  55. .qs777vu2j1Jrr2XXYrr7r77777r7r7r77v11JUJ1U1r7r7r77777r7r777r7777777r7r77777r7r7rBvr77r7r777r77777vX2
  56. KY777vIi :dP1ri7r777r777777777rvs. 7r .2r7r7777777r7r7777777r777r77777r7r7rvZrr7rrv22UL777r7r77UK
  57. rX77r72. sbrrr7r777r77777r7r7r7ss 7i S7r7r777r77777r77777777777777777r7r77vr7r7u1:::YSJr777777US
  58. qv77775 rEuirr7r7r7777777r7r7r7r7sJvUsJsuuvr7r7r7r7r7r77777777777r7r7r7r777r7r7r7777d .1Ur7r777rq7
  59. Evr777L7rPq7r7r777r77777r7rrrrirvju2IXUII5II1u7v77r7rrr7r777r777r7777777r777r7r777r7r7S. Yur7r7777D
  60. sP7r7riXQYrr77777r7r777r7vuuJjddY77rriiiiiririEI15KuX2UL7rrr7r777r7r77777r77777r77777rv5L. jJ7r7r7rrEi
  61. 2b2vrKPirr7r7r7r7r7rLuSIur.:SdY Iv.sL :i7JISIJrrr7r7r7r777r7r7r7777777r777sSJJLIs7r77777LR
  62. .irgIirr777r7rriv1X17:. :qiP ............. 5r.rU . ..:Lg117rr777777777r77777r7r777r77vvL77rrrr7sSd.
  63. iXi7r777r7r7vP5r. UZ.vv ............. S. I ..... u7:YRJIvrr7r7r7r7r7r777777777r7r777r77YY1Ji
  64. vZi7r77777rU57g. ... :gS X............... P: q ..... ib:i:E::IXjr7r7r7r7r7r777r777r777777S2IUg
  65. 7gr777777rLbL iv ... vRr .P .............. P. X..... .grr. iP :JP17r7r7r777r777r7r7r7r7r7rrirYb
  66. : :Qr7r777rr5q. .Z .. .qX. jv .............. E K .... Pui. 17 .Jq2r7r7r777r7777777r7r7r7r7rrug
  67. B.i: Q777777rvbL iBr rQ7 P:................b 2 ... UXi. g.... .LPjrr7r777r7r7r7777777r7r7rr1D
  68. iXBvL gY7r7r7r1d: jPS :bK...i. E............... vU .:d::. sKi. v2 .... .uKYr7r777r7r7r777r777r777772b
  69. i7di:s: Yqr77r7rKX. .P1:v :Pr . .K .............. E:. :S...Sgr. . D....... :IXr7r77777r777r77777r7r77rXI
  70. .. r. g7r7r7rEs :Dv :::7 .S ............. iX .L 2q:. iK ....7: rPYrr777r77777r7r7r777r7rrd7
  71. vrSM. U2r7r7rE7 iZ: rri . :j ............. P: r:.K1 P:... J:.. .S5rr77777r777r777r777r7r7D.
  72. E1 Dr7r7rP7 i5 u. . :Y P:...........iK 7rIi .E .. 1:... Lq7r7r7r7r7777777r7r7r7rJb
  73. .iv7 jU7r7rI2 i1 .. . :rr77 ......... D .Y. . 57 . X...... rPvr7r7777777r7r7r7r7r7rP7
  74. b777rLqi :j . .Iv X ........ 17 . .Z ..q....... :qLr77777r7r7r777r7r7r7rM
  75. 7Sr7rrK7:.L . . g. E:....... iX . . . . . Pr .d ....... :Pvr7r77777r777r777r77712
  76. 7 Zr7r7jL::7. P rS ......:P . . :E :q ........ :P7r7777777r7r7r7r7r77rZ.
  77. :B7:7. vX7r7rP.rr. : E:.....:I . . . . q.iJ ......... iP7r7r7r7r7r777777777r1I
  78. .Qq:r7 Evr7rLI J. .r7. :P ...rL . . . vrr:........... L5rr77777r7r77777r7r7rD
  79. XYir :Er7rrJS.. vBBBBB. . . Jr..7i . . :PL............. qY7r777r7r7777777r77711
  80. .:: .7 1I7r7rXP ....... vBBQKi . . . Lir. :BBBgv . :X: ............ .Er77777r777r7r7777777E
  81. :12 USr7rJ2 ......... : :BBBBBg :I .............. vUr777r7r777r77777r7rPi
  82. g: :grrLP. .::::.:.:... .: . .i7v. ........ . :1 .............. :gir777r777r77777r7r7LX
  83. K7v. Purg: :ii:::r::::.... . . . . ......:........ :s .............. vB7rr777r7r777r777r7r7d
  84. DPJ ii:i::r::::::.... . . . . . . . . . . ......:::::.:i:.:.... r7............... EQS:7r7r7r77777777777rP:
  85. .B.i::r::r.:ri.:.:.. . . . . . . . .....:r::::::ri.:::.... si ............. .QPEir7r7777777r7r777r7UY
  86. .U ..::ir.:r:.:.:.... . . . . .:. ....::r::r:.:ri.i::::::.. X:.............. rBIM7rr777r7r7r7r7r7777LX
  87. 2i ..::i.:::::i7vi.. :ii. ::. ....:ri..ii.:ri.:r:::::.:. P............... bESDui777r7r7r7r7r7r7777d
  88. d. ...:.:::::.i7r.. :i: i7 .. ri ...ii.::7.:ri.:r:.:::::. .P ............. .QKIg1ir777r7r777r77777r7P.
  89. .:iii. b ........... . :. .r i7iu:.7:.ii.ir ......::i::ri.:ii.:::::.. 7U ............. 7BISD2i77777r7r7r7r777r7rb.
  90. :uqKPXXSPqI: d . ....... . . :i. :: ::. .K ......:.:::::::::::::... u7 ............. ZdS2Rvr777777r7r777777777b.
  91. uZIsJLsvYLs1ZK. 2: .r . ....:.:.:.:::::..... P:............. :BXIPEir7r77777777777r777rE
  92. :QLvYvLvLvLvsLMv :5 . . . i. . ............... P.............. UR55gsi777777777r7r7r777rLK
  93. LPsvvYvLvLvYvI:. Z. . . ru . . . . i. ... . . :K ............ BXSPbirr777r777777777r7r72L
  94. 2uJJvvYvLvYvLU:.: g . . .: . i. Yv ............ sQSqgrrr7r7r7r7r777r7r7r7rZ.
  95. 1MsUjYvYvYvvrv2j. .Z. . .i .:. :rY7r. X:............ .QqKg7rr7r7r777r777r77777r12
  96. QBPvvLvLvvYIvv12s. Pi . . . . . .. sPPqK5SXS25SM2 . P ............ 2BdZ7ir7r7r777r77777r7r777Z
  97. :P7vvLvL7UgD17YKP. YU. . . . gPJvLvsLLvvsL7Qi . . 7J............ :Bb1iir7r7r7r7r7777777r7r7Pr
  98. gLvYvYvv7EEdvvLIZ .YX. . . KSv7vvv7LLL7YI712 K:............ M1rirr7r777r7r777r7r7r7rrU5
  99. gKJLY7vrJDZPJ7Yuq qLuv: .:52v71ZZL7vY7rLQquI .S ........... K2ir7r7r777r777r777r77777JE
  100. jKSLsr7rsJY7LvIs 7:.ivssri.. .IXXJLv7qQgX7v77vEEZ57 .5. .......... 7drr7r7r777r7r777r7777777YZ
  101. rKIZPqu77YvYYd U . ::igKSX21YL7r:.. :MuYLYvY7LUKJvvvUgEPS1 .i72qgQBr uR ....... :g7r777777777r777r77777r7sZ
  102. 2QgDd57LvYvvZi r7..r .57777LuuXPRQBQBQBPj1I5QvYvL7Lvv77r7vL7jussPbEBBBBQRZR5 jEb. ..... .dYr7r777r7r7r777r777r777jE
  103. .vKSvsLYLL7b. 7::i 2771XXSX2UYLvYYJSv7Krq2777rYvLvLvLvLvL77ruj1UUJjYY77L:uji1r ..... 52r7r777r777r7r7r7r7r7r7IP
  104. YPKPXSUqB. iv. ES5r. ..ivuuuYIPJUjSJ7ssURU7LvLvLvYvL72JiiriiiriirjYvr7v2 .... vPr777r7777777r7r777r7rrUv
  105. ...iYrsr : jq: ..:::rsJd57PMgEYvvv7vvLvL7vgvi7r7r7r7iX1rr7r7P.... iZr7r77777r77777r777r7irE:
  106. .vi::.. .ii. PYLLJ77v7r77v7Lv2DdSXLrr7r777vrr7r7rbi . .E7777r777r777r7r7r7rriLPBi
  107. i v ..::i. . iX7v7v7vLSbgqJSbS. iqdUrrr7r7r7r77r2s Pv7r777r777777777r7rr7XbPDP
  108. .RbQQi . r. .ZUYv7vvDQggRJi . :KEurr7r7r777rJu 5Jrr7r7r777r77777777rrdPX5PB
  109. jRPQP .:::.. :rYDU .:sJPP2u25PXU. r: iSPvi7r7r7r772 Yjrr77777r77777r77777isbKI5SB:
  110. .:. .PuLd .: sRqJi. s. :rP5i7r777rrJLJ77777r777777777r777r7rbqXISgX
  111. ILrq7 . : ..::iJ i ::.2Pr7r777rLsr77r7r7r7777777r7r7r7rr7PqXIqB
  112. .Ss77Z 27:....i .. :r. r:.Ydr7r777r7r777r7r77777r7r777r777rirPqKSRX
  113. iKLr7jI 7PPbEBBi .:i::. :7: :r:.vdr7r7r7r777r7r7r7r7r77777r7r777rrrXPKXB.
  114. 1S777ib: LB1JYJR1 ..:irii:7i .ri:.jKi7r7r7r7777777r7r77777r777r7r7rri2PPZQ
  115. P17r7iYM .5PSqKr ..: ii::.XUr7r7r7r7r777r7r777r7r77777r777rriYqPB7
  116. .ZL7rriJB1 :r::.:d7r7r77777r7r7r777r777r777r7r7r777irKMQ
  117. gv7rriIZB :r:::.7qrr7r7r7r7r7r77777r777r7r77777r777irXBi
  118. dJ7rrrKbBs . .r::::.Ks7r777r777r77777r7777777r7777777r7irMg
  119. rErrrrPPZS .i .i::::.:bi7r777r777r7777777r77777r7r777r7r7iuB
  120. EsrriqqKg: :vi r:i:::.Ijr7r7r7r7r7r7r777r7r7r777r7r7r777rrrB.
  121. Dr7iudPdBBv. :7Kj. .r:::::.rPrr777777777r777777777r7r7r7r7r7r7rrR:
  122. ::vPrr7bgQD7iivvvi:. :rISs. .r::::::.Kv7r7r7r7r777r7r777r777777777r7r7r7rE:
  123. .:rvsv7rqrruQ2: ... ..rjX5Ji .i::i:::.v5r7777777777777r777r77777r7r7r777rrPi
  124. .ivYL7rrrii27i1: ...:i:. :i::::::::Krr7r7777777r7r77777r7777777r777r7iKS:.
  125. :vYvrrrririiiYZZESDQqi r:::i::::.Sv7r7r77777r7777777r7r7r777777777riquiYvi
  126. :vYrririririrYji.:vPXUZBB. .ri:::::::.vjr7r777r777r7r77777r7r7r777r77777rMrii7vs:
  127. 7L7rrirrL7rrjv: XKUSQBr :r:::::::: vJrr7r7r77777r7r7r77777r7r7r7r777iub:irirrYv
  128. 7Lririr7 rjr .:r7rdRd5SKBS. r::::::...vQvr7777777r77777r7777777r7r777r7rrgr:ririrrLv
  129. s7iririru .iLJuL7ii:LqDPKKgQ5. iii:::..:vbQdi7r77777r77777r777r777r7r7r7r7ivEL:iiririrru
  130. 7vrrririvs.rsYvrriririi::7XdDPdgBPr :r::..:rSZgZDrrr7r777r7r77777r7777777r7r7rr7Sq7:iiriririvv
  131. Yv7rriri7Y7iiiririririii::iLKEgDQBBbji:. .isqK7 .i:..iUbgdPPb7ir7r7r7r7r777777777r7r7r7rr7u5KYi:iiririrrLY.
  132. rYvrririiiriririririririi:::i7uSbDQBBBBBBMRBBRQQBBQBB2 :.:JqgdPKdPUirr7777777r777r7r7r7rrrrrvsI5Ssr::iiirirrr7Jr
  133. iYv7rriririririririririiii::.::ii7L1IqKBBU iS2PBBI. :vSgZbXPPb27irr7r777r7r7rrrrr7rvvYJ22S217r:::iirirrr7Lvr.
  134. :rYLvrrrririririririririririiiiii.:rj7 .PDEbgQBQgjr. .2ggDKPPdXU7ii7r7rrrrrrr7vYJUUI25UUJs7rii::iiirrrr77Yv7:
  135. .i7LY77rririririririririri7: rjLi .rvJv7:::iir71KQBBBRXY:..IQQdbPP517riiirr7r7vsJI2522JY77rii::::i:iirirrrrvLY7i.
  136. .irvvYv7rrrririririririU . :7Yjvririiii:i:::::r71qRQBBBQEXIsvri:irvvjjI2IU1YY7rii:::i:iiiiririrr77vvYv7i:
  137. .:ivvYvY7vrrrrrriivY .isJsrriririririiiriiii:::::irvJ1YsvLvJJ1UUjjv7rrii:i:i:iiririrrrr77vvYvL7r:.
  138. ..:r77LvYvLv7JIjYrrrrrririrrriririririririi:i::::iirrrriiii:iiiirirrrr7r77vvLLLvv7ri:..
  139. ...iirr77YvYLYvLvL7v7v7vr7777777r7r7r7r7r7rrrrr7r77v7LvYvsLYvv77ri::..
  140. ....::::iirrrr7r777777v77777777rrrriiii::.....
  141. */

疯子的算法总结(七) 字符串算法之 manacher 算法 O(N)解决回文串的更多相关文章

  1. 学习manacher(最长公共回文串算法)

    给定一个字符串求出其中最长个公共回文串. 举列子: abab   -->回文串长度为2 以前的算法诸如: 扩展kmp求法过于麻烦,看到有一篇博文(http://leetcode.com/2011 ...

  2. 字符串(马拉车算法,后缀数组,稀疏表):BZOJ 3676 [Apio2014]回文串

    Description 考虑一个只包含小写拉丁字母的字符串s.我们定义s的一个子串t的“出 现值”为t在s中的出现次数乘以t的长度.请你求出s的所有回文子串中的最 大出现值. Input 输入只有一行 ...

  3. 算法 -- 四种方法获取的最长“回文串”,并对时间复杂进行分析对比&PHP

    https://blog.csdn.net/hongyuancao/article/details/82962382 “回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就 ...

  4. Manacher回文串算法学习记录

    FROM:  http://hi.baidu.com/chenwenwen0210/item/482c84396476f0e02f8ec230 #include<stdio.h> #inc ...

  5. 算法进阶面试题01——KMP算法详解、输出含两次原子串的最短串、判断T1是否包含T2子树、Manacher算法详解、使字符串成为最短回文串

    1.KMP算法详解与应用 子序列:可以连续可以不连续. 子数组/串:要连续 暴力方法:逐个位置比对. KMP:让前面的,指导后面. 概念建设: d的最长前缀与最长后缀的匹配长度为3.(前缀不能到最后一 ...

  6. hdu3068 求一个字符串中最长回文字符串的长度 Manacher算法

    最长回文 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  7. 【2018.07.28】(字符串/回文串)学习Manacher算法小记

    主要是应用在回文串啦,原理也理解了老半天,如果没有图片的话,我也看不太懂它的原理 学习的灵感来源来自于:https://segmentfault.com/a/1190000008484167 /* 最 ...

  8. Manacher算法 - 求最长回文串的利器

    求最长回文串的利器 - Manacher算法 Manacher主要是用来求某个字符串的最长回文子串. 不要被manacher这个名字吓倒了,其实manacher算法很简单,也很容易理解,程序短,时间复 ...

  9. Manacher 算法-----o(n)回文串算法

    回文的含义是:正着看和倒着看相同,如abba和yyxyy        Manacher算法基本要点:用一个非常巧妙的方式,将所有可能的奇数/偶数长度的回文子串都转换成了奇数长度:在每个字符的两边都插 ...

随机推荐

  1. TCP协议的安全性分析

    有算法就有破解法,因为它们都遵循了一定的数据结构和数学知识.所以网络安全是一个相对的概念,不可能出现绝对的安全!作为当今最流行的网络协议--TCP也是如此.那么TCP的安全问题究竟是哪些因素引起的呢? ...

  2. 多平台博客发布工具OpenWrite的使用

    1 介绍 OpenWrite官网 OpenWrite是一款便捷的多平台博客发布工具,可以在OpenWrite编写markdown文档,然后发布到其他博客平台,目前已经支持CSDN.SegmentFau ...

  3. Java中的垃圾回收算法详解

    一.前言   前段时间大致看了一下<深入理解Java虚拟机>这本书,对相关的基础知识有了一定的了解,准备写一写JVM的系列博客,这是第二篇.这篇博客就来谈一谈JVM中使用到的垃圾回收算法. ...

  4. CentOS Linux安装后扩充SWAP分区

    1. 首先先查看目前swap分区大小:     free -hm    total used free shared buffers cached    Mem: 11G 801M 10G 236K ...

  5. Django 表单处理流程

    Django 的表单处理:视图获取请求,执行所需的任何操作,包括从模型中读取数据,然后生成并返回HTML页面(从模板中),我们传递一个包含要显示的数据的上下文.使事情变得更复杂的是,服务器还需要能够处 ...

  6. pgsql中的lateral使用小结

    pgsql中的lateral 什么是LATERAL 带有LATERAL的SQL的计算步骤 LATERAL在OUTER JOIN中的使用限制(或定义限制) LATERAL的几个简单的例子 总结 举几个我 ...

  7. 数据表记录包含表索引和数值(int范围的整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出

    此题如果直接使用有序的TreeMap就不需要这样折腾: 1.map的key值唯一性,故就不在需要set集合来去重 2.使用map后利用key的唯一性,把序列号相同的数据直接加在一起,代码会很简洁 pa ...

  8. abp(net core)+easyui+efcore实现仓储管理系统——入库管理之九(四十五)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...

  9. VMware15 安装Mac 10.14系统/苹果系统

    安装环境 Windows专业版 VMware Workstation Pro 15 所需资源 VMware Workstation Pro 15.0.0 Build 10134415 官网下载地址:h ...

  10. PHP xml 外部实体注入漏洞学习

    XML与xxe注入基础知识 1.XMl定义 XML由3个部分构成,它们分别是:文档类型定义(Document Type Definition,DTD),即XML的布局语言:可扩展的样式语言(Exten ...