找出字符串的最长回文串
时间: 2023-09-14 19:14:10 浏览: 94
最长回文串是指正反读都一样的字符串中最长的那个。例如,字符串 "racecar" 的最长回文串是 "racecar"。
以下是一个 Python 程序,用于找出给定字符串的最长回文串:
```python
def longest_palindrome(s: str) -> str:
n = len(s)
if n < 2:
return s
dp = [[False] * n for _ in range(n)]
for i in range(n):
dp[i][i] = True
max_len = 1
start = 0
for j in range(1, n):
for i in range(j):
if s[i] == s[j]:
if j - i < 3:
dp[i][j] = True
else:
dp[i][j] = dp[i + 1][j - 1]
else:
dp[i][j] = False
if dp[i][j]:
cur_len = j - i + 1
if cur_len > max_len:
max_len = cur_len
start = i
return s[start:start + max_len]
```
该程序使用动态规划算法,时间复杂度为 O(n^2),空间复杂度为 O(n^2)。
阅读全文