介绍
怎么在Python中找回文子串?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
Python主要用来做什么
Python主要应用于:1,网络开发;2、数据科学研究;3,网络爬虫;4、嵌入式应用开发,5日游戏开发;6桌面应用开发。
<强> 1,双指针两边扩展强>
遍历指针为i, j=i + 1,我左移,j右移,判断是否相等将长度,下标赋给临时变量,最后切片返回。唯一的大坑。回文字符串长度可以是奇数也可以是偶数。奇数的时候,内层循环从张开始。边界条件也需要处理好。
class 解决方案(对象): ,,,,,,, ,,,def longestPalindrome(自我,,年代): ,,,,,,,,,, ,,,,,,,:type 销售:str ,,,,,,,:rtype: str ,,,,,,,,,, ,,,,,,,n =, len (s) ,,,,,,,,,maxL maxR,, max =, 0, 0, 0 ,,,,,,,for 小姐:拷贝范围(n): ,,,,,,,,,,,#,长度为偶数的回文字符串 ,,,,,,,,,,,start =我 ,,,,,,,,,,,最终获得=,小姐:+ 1 ,,,,,,,,,,,while start 祝辞=,0,以及最终获得& lt;,护士: ,,,,,,,,,,,,,,,if s[开始],==,s[结束]: ,,,,,,,,,,,,,,,,,,,if 最终获得成功;start +, 1,祝辞,马克斯: ,,,,,,,,,,,,,,,,,,,,,,,max =,最终获得成功;start + 1 ,,,,,,,,,,,,,,,,,,,,,,,maxL =,开始 ,,,,,,,,,,,,,,,,,,,,,,,maxR =, ,,,,,,,,,,,,,,,,,,,start -=1 ,,,,,,,,,,,,,,,,,,,最终获得+=1 ,,,,,,,,,,,,,,,其他的: ,,,,,,,,,,,,,,,,,,,休息 ,,,, ,,,,,,,,,,,#,长度为奇数的回文子串 ,,,,,,,,,,,start =,小姐:安康;1 ,,,,,,,,,,,最终获得=,小姐:+ 1 ,,,,,,,,,,,while start 祝辞=,0,以及最终获得& lt;,护士: ,,,,,,,,,,,,,,,if s[开始],==,s[结束]: ,,,,,,,,,,,,,,,,,,,if 最终获得成功;start +, 1,祝辞,马克斯: ,,,,,,,,,,,,,,,,,,,,,,,max =,最终获得成功;start + 1 ,,,,,,,,,,,,,,,,,,,,,,,maxL =,开始 ,,,,,,,,,,,,,,,,,,,,,,,maxR =, ,,,,,,,,,,,,,,,,,,,start -=1 ,,,,,,,,,,,,,,,,,,,最终获得+=1 ,,,,,,,,,,,,,,,其他的: ,,,,,,,,,,,,,,,,,,,休息 ,,,,,,,return s [maxL: maxR + 1]
<强> 2,Manacher算法强>
由于在输入预处理的步骤中,将所有的回文子字符已经转为奇数长度,所以在下面的操作中,只需要将输入的每一个字符,都当做一个回文子字符的中心位即可。不需要考虑偶数长度的回文子字符。
& # 39; & # 39; & # 39; @author: Yizhou 赵 & # 39;& # 39;& # 39; #,设置,半径[我],=,1,因为字符本身也是一个回文数 [我]半径,=,1 null null怎么在Python中找回文子串