python回文子串
时间: 2024-10-24 10:01:07 浏览: 17
在Python中,回文子串是指一个字符串从左到右读和从右到左读都一样的部分。检测一个字符串是否包含回文子串通常涉及到动态规划或者中心扩展算法。这里简单地解释一种常见的中心扩展法:
```python
def is_palindrome(s):
def expand(left, right):
while left >= 0 and right < len(s) and s[left] == s[right]:
left -= 1
right += 1
return s[left + 1:right]
for i in range(len(s)):
# 检查以每个字符为中心的奇数长度回文
pal_odd = expand(i, i)
if pal_odd:
print(f"发现奇数长度回文 {pal_odd}")
# 检查以每个字符和下一个字符为中心的偶数长度回文
pal_even = expand(i, i+1)
if pal_even:
print(f"发现偶数长度回文 {pal_even}")
# 如果没有直接找到回文,检查整个字符串本身
if s == s[::-1]:
return True
else:
return False
# 示例:
s = "babad"
print(is_palindrome(s))
```
这个函数会找出所有可能的回文子串并打印出来。如果你只想判断是否存在回文子串而不想列出它们,可以在`is_palindrome`函数返回的地方添加一个布尔变量。
阅读全文