Python3最长回文子串算法示例
作者:gxnustc 时间:2023-05-27 14:17:10
本文实例讲述了Python3最长回文子串算法。分享给大家供大家参考,具体如下:
1. 暴力法
思路:对每一个子串判断是否回文
class Solution:
def longestPalindrome(self, s):
"""
:type s: str
:rtype: str
"""
if len(s) == 1:
return s
re = s[0]
for i in range(0,len(s)-1):
for j in range(i+1,len(s)):
sta = i
end = j
flag = True
while sta < end:
if s[sta] != s[end]:
flag = False
break
sta += 1
end -= 1
if flag and j-i+1 > len(re):
re = s[i:j+1]
return re
提交结果:超出时间限制
2. 动态规划法
思路:
m[i][j]标记从第i个字符到第j个字符构成的子串是否回文,若回文值为True,否则为False.
初始状态 s[i][i] == True,其余值为False.
当 s[i] == s[j] and m[i+1][j-1] == True 时,m[i][j] = True
class Solution:
def longestPalindrome(self, s):
"""
:type s: str
:rtype: str
"""
k = len(s)
matrix = [[False for i in range(k)] for j in range(k)]
re = s[0:1]
for i in range(k):
for j in range(k):
if i==j:
matrix[i][j] = True
for t in range(1,len(s)): #分别考虑长度为2~len-1的子串(长串依赖短串的二维数组值)
for i in range(k):
j = i+t
if j >= k:
break
if i+1 <= j-1 and matrix[i+1][j-1]==True and s[i] == s[j]:
matrix[i][j] = True
if t+1 > len(re):
re = s[i:j+1]
elif i+1 == j and j-1 == i and s[i] == s[j]:
matrix[i][j] = True
if t+1 > len(re):
re = s[i:j+1]
return re
执行用时:8612 ms
希望本文所述对大家Python程序设计有所帮助。
来源:https://blog.csdn.net/aawsdasd/article/details/80484938
标签:Python,回文,算法
0
投稿
猜你喜欢
浅析Git版本控制器使用
2023-09-10 16:21:23
详解Python调用系统命令的六种方法
2023-11-20 02:22:36
python logging添加filter教程
2022-08-21 00:36:43
Vuex的安装、搭建及案例详解
2024-05-29 22:20:22
asp实现本周的一周时间列表的代码
2011-04-06 10:45:00
go语言中linkname的用法
2024-02-07 10:48:39
python 算法 排序实现快速排序
2022-09-04 03:20:17
pytorch常用函数之torch.randn()解读
2023-03-24 09:08:29
微信小程序request请求后台接口php的实例详解
2023-11-11 14:24:04
详解Django框架中用户的登录和退出的实现
2022-08-28 19:37:19
python-docx文件定位读取过程(尝试替换)
2022-03-05 14:41:19
Python原始字符串(raw strings)用法实例
2021-05-04 18:29:27
Golang 限流器的使用和实现示例
2024-04-25 15:06:25
python设置表格边框的具体方法
2023-11-13 08:08:48
微信小程序 云开发模糊查询实现解析
2023-08-24 14:47:57
简单方法实现Vue 无限滚动组件示例
2023-07-02 16:50:14
一个用Ajax做的用户名验证程序
2007-10-21 20:40:00
golang中如何保证精度的方法
2024-04-26 17:23:22
WEB设计经验-来自Microsoft
2008-05-15 07:30:00
python标记语句块使用方法总结
2023-09-23 20:16:22