目录
- 题目
- 描述
- 输入格式
- 输出格式
- 示例 1
- 思路
- 代码
- 实现效果
- 总结
主要内容是校设课程的习题和课外学习的一些习题。
欢迎关注 『Python习题』 系列,持续更新中
欢迎关注 『Python习题』 系列,持续更新中
题目
描述
输入一个字符串s,找出并以列表形式输出s中最长的回文子字符串,有多个满足条件的子串全部输出,按字符串升序排序。
输入格式
输入一个非空字符串
输出格式
以列表形式输出s中最长的回文子字符串
示例 1
输入:cbbd
输出:[‘bb’]
思路
获得所有的子串
for i in range(len(my_str)):#找到所有的子串
lst_all = lst_all + [my_str[j:i + j + 1] for j in range(len(my_str))]
第一个测试点过不了的原因是要按序排列最终的子串
answer.sort()
代码
def long_sub_str(my_str):
lst_all = []
for i in range(len(my_str)):
lst_all = lst_all + [my_str[j:i + j + 1] for j in range(len(my_str))] # 获得全部子串
lst = sorted(set(lst_all), key=len, reverse=True) # 去重,按长度降序排序
filter_lst = [s1 for s1 in lst if s1 == s1[::-1]]
answer = [x for x in filter_lst if len(x) == max(map(len, filter_lst))]
answer.sort()
return answer
if __name__ == '__main__':
s = input()
print(long_sub_str(s))
实现效果

总结
大家喜欢的话,给个👍,点个关注!给大家分享更多有趣好玩的Python习题!
版权声明:
发现你走远了@mzh原创作品,转载必须标注原文链接
Copyright 2022 mzh
Crated:2022-3-1
欢迎关注 『Python习题』 系列,持续更新中
欢迎关注 『Python习题』 系列,持续更新中
【更多内容敬请期待】
该博客介绍了如何使用Python解决寻找字符串中最长回文子串的问题,提供了思路、代码实现及示例。文章强调了需要按顺序排列最终结果,并给出了完整的解决方案。
&spm=1001.2101.3001.5002&articleId=124581381&d=1&t=3&u=56fed13376db49f99915c32a6856215a)
159

被折叠的 条评论
为什么被折叠?



