输入一个字符串,输出这个字符串的最大回文子串的长度
时间: 2023-08-18 20:10:34 浏览: 107
好的,这是一个比较经典的字符串问题。我来为您解答。
可以使用中心扩展算法来解决这个问题。具体步骤如下:
1. 从左到右遍历字符串,以每个字符为中心,向左右两边扩展,直到不再是回文子串为止。记录下每个回文子串的长度。
2. 重复以上步骤,以每两个相邻字符的间隔为中心,向左右两边扩展,直到不再是回文子串为止。记录下每个回文子串的长度。
3. 返回所有回文子串长度中的最大值。
代码如下:
```python
def longest_palindrome(s):
n = len(s)
if n < 2:
return n
max_len = 1
for i in range(n):
# 以s[i]为中心的奇数长度回文子串
l, r = i, i
while l >= 0 and r < n and s[l] == s[r]:
max_len = max(max_len, r - l + 1)
l -= 1
r += 1
# 以s[i]和s[i+1]为中心的偶数长度回文子串
l, r = i, i + 1
while l >= 0 and r < n and s[l] == s[r]:
max_len = max(max_len, r - l + 1)
l -= 1
r += 1
return max_len
```
您可以调用上述函数,传入一个字符串作为参数,即可得到该字符串的最大回文子串长度。
阅读全文