最长回文子串-python
dp方法
def longest_palindrome(s): # input: str output: longest substing # 对于空字符、一个字符,都是其本身 if not s: return '' n = len(s) print(f"字符长度:{n}") # state is_palindrome = [[False]*n for _ in range(n)] for i in range(n): is_palindrome[i][i] = True # 有无必要? # for i in range(1, n): # is_palindrome[i][i-1] = True longest, start, end = 1, 0, 0 # 先循环区间长度,再循环区间起点 for length in range(1, n): print(f"\n区间长度:{length}") for i in range(n-length): j = i + length # 起点i,终点j is_palindrome[i][j] = s[i]==s[j] and is_palindrome[i+1][j-1] print(f"起点:{i}, 终点:{j}, s[i]:{s[i]}, s[j]:{s[j]}, {is_palindrome[i][j]}") if is_palindrome[i][j] and length+1 > longest: longest = length + 1 start, end = i, j return s[start:end+1] longest_palindrome("banana")
时刻记着自己要成为什么样的人!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2017-08-11 15本经典金融投资著作