怎么在Python中找回文子串

  介绍

怎么在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中找回文子串