千锋教育-做有情怀、有良心、有品质的职业教育机构

python找回文子串的方法

来源:千锋教育
发布时间:2023-11-15 17:16:04
分享

python找回文子串的方法

1、双指针两边扩展

遍历指针为i,j=i+1,i左移,j右移。判断是否相等将长度,下标赋给临时变量,最后切片返回。唯一的大坑。回文字符串长度可以是奇数也可以是偶数。奇数的时候,内层循环从i-1开始。边界条件也需要处理好。

classSolution(object):

deflongestPalindrome(self,s):

"""

:types:str

:rtype:str

"""

n=len(s)

maxL,maxR,max=0,0,0

foriinrange(n):

#长度为偶数的回文字符串

start=i

end=i+1

whilestart>=0andend

ifs[start]==s[end]:

ifend-start+1>max:

max=end-start+1

maxL=start

maxR=end

start-=1

end+=1

else:

break

#长度为奇数的回文子串

start=i-1

end=i+1

whilestart>=0andend

ifs[start]==s[end]:

ifend-start+1>max:

max=end-start+1

maxL=start

maxR=end

start-=1

end+=1

else:

break

returns[maxL:maxR+1]

2、Manacher算法

由于在输入预处理的步骤中,将所有的回文子字符已经转为奇数长度。所以在下面的操作中,只需要将输入的每一个字符,都当做一个回文子字符的中心位即可。不需要考虑偶数长度的回文子字符。

'''

@author:YizhouZhao

'''

#设置radius[i]=1,因为字符本身也是一个回文数

radius[i]=1

while(string[i-radius[i]]==string[i+radius[i]]):

radius[i]+=1

以上就是Python找回文子串的方法,希望对大家有所帮助。更多Python学习教程请关注IT培训机构:千锋教育。

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • python文件路径的组成 python文件路径的组成组成1、**文件夹路径:**文件系统上的文件夹位置,后续文件夹分为正斜杠/(Unix)或反斜杠\(Windows)。2、文件名称:文件的实际名称。3、**扩展名:**文件路径
  • python类变量和实例变量的对比 python类变量和实例变量的对比区别1、类变量是所有对象共有的,其中一个对象改变其价值,其他对象得到的是改变后的结果。2、实例变量是对象的私有,某个对象改变其价值,不影响其他对象。类变量不需要实例就
  • pythonthread模块如何实现多线程 pythonthread模块如何实现多线程说明python语言提供了两个与多线程相关的模块,一个是thread模块,另一个是threading模块。1、thread模块提供的功能和函数相对较少,只提供
  • python三元操作符如何赋值 python三元操作符如何赋值说明1、在Python中,三元运算符通常被称为条件表达式.2、是根据真(true)/假(not)的条件来判断的,在Python2.4以上才能进行三元操作。语法#X是条件#
  • python赋值和交换的方法 python赋值和交换的方法赋值原理1、在赋值的右边形成一个新的元组,在左边立即分析(unpack)元组到变量和。2、当赋值完成后,新的元组将不再被引用,并被标记为可被垃圾回收,最终完成变量交换。实例
  • pythonpandas的知识点整理 python中pandas的知识点整理说明1、python+data+analysis的组合缩写,是python中以numpy和matplotlib为基础的第三方数据分析库2、共同构成python数据