python给定一个字符串,输出所有长度至少为2的回文子串。
时间: 2023-05-21 19:00:57 浏览: 173
可以使用中心扩展算法来解决这个问题。具体步骤如下:
1. 遍历字符串,以每个字符为中心,向两边扩展,找到所有以该字符为中心的回文子串。
2. 遍历字符串,以每两个相邻字符的中心,向两边扩展,找到所有以这两个字符为中心的回文子串。
3. 将步骤1和步骤2找到的所有回文子串合并去重,输出结果。
以下是实现代码:
def find_palindromic_substrings(s):
res = set()
for i in range(len(s)):
# 以单个字符为中心的回文子串
l, r = i, i
while l >= 0 and r < len(s) and s[l] == s[r]:
res.add(s[l:r+1])
l -= 1
r += 1
# 以相邻两个字符为中心的回文子串
l, r = i, i+1
while l >= 0 and r < len(s) and s[l] == s[r]:
res.add(s[l:r+1])
l -= 1
r += 1
return list(res)
s = "abcbadefg"
print(find_palindromic_substrings(s)) # ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'bc', 'cb', 'badab', 'def', 'aba']
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)