立秋6789 2022-12-06 11:09 采纳率: 89.7%
浏览 29
已结题

Python判断最长回文子字符串,怎么优化代码运行时间?

Python判断最长回文子字符串,怎么优化代码运行时间?

str1 = input()
# count,字符串数量
res_list = []  # res_list:存储匹配的回文字符串长度
for count in range(2, len(str1) + 1):
    # 从回文字符串长度2开始遍历
    j = 0  # j:控制起始索引和结束索引
    while (count + j) <= len(str1):  # 遍历所有count数量的子字符串

        res_1 = str1[j : count + j]  # 当前的子字符串
        res_2 = res_1[::-1]  # 倒置子字符串
        if res_1 == res_2:  # 回文字符串的判断:原字符串等于倒置后的字符串
            res_list.append(count)  # 如果满足条件,把回文字符串的数量添加到res_list列表
            break
        else:
            j += 1  # 索引加1,切片往后移
print(max(res_list))  # 输出res_list中最大的数字


  • 写回答

2条回答 默认 最新

  • 於黾 2022-12-06 11:20
    关注

    既然问最长的,不是最大的,你为什么要用max函数来求
    而且你应该从最长的字符串开始试,试出来一个就直接结束,而不是从最短的开始 试

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月21日
  • 已采纳回答 12月13日
  • 创建了问题 12月6日

悬赏问题

  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥15 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入
  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
  • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
  • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?