题解 | #最长回文子串#

最长回文子串

http://www.nowcoder.com/practice/12e081cd10ee4794a2bd70c7d68f5507

while True:
    try:
        s = input()
        res = []
        
        for i in range(len(s)):
            for j in range(i+1, len(s)+1):
                if s[i:j] == s[i:j][::-1]:
                    res.append(j-i)
        if res != '':
            print(max(res))
    except:
        break
全部评论
第7行更新为for j in range(i+len(res), len(s)+1): 可少一些循环
4 回复 分享
发布于 2022-05-13 09:45
这个复杂度是O(n^2)吧?
3 回复 分享
发布于 2022-02-20 17:24
其实可以直接从最大开始往小循环会快一点
1 回复 分享
发布于 2022-03-20 19:49
牛呀
1 回复 分享
发布于 2022-02-17 00:42
时间复杂度不合要求
点赞 回复 分享
发布于 2024-06-27 19:42 重庆
第八行应该是[i:j+1]吧
点赞 回复 分享
发布于 2024-04-19 18:49 辽宁
s = input() res = 0 for i in range(len(s)): for j in range(len(s), i, -1): if j - i > res: if s[i:j] == s[i:j][::-1]: res = j - i print(res) j倒着取,然后让j-i与当前结果比较,如果j-i已经小于当前最长子串长度,就不需要再判断是否回文了。
点赞 回复 分享
发布于 2023-12-15 13:58 浙江
这个太暴力了吧
点赞 回复 分享
发布于 2023-04-03 15:56 广东
楼主你好,想问一下比如输入“abcd”,这个字符串的最大回文子串长度是几,是1吗还是不存在;也就是这一点让我觉得在遍历i的时候,如果用for i in range(len(s)-1)后s[i:j]就一定保证子串长度大于等于2,这有必要吗
点赞 回复 分享
发布于 2022-12-25 01:20 上海
这种就是暴力穷举吧?
点赞 回复 分享
发布于 2022-11-06 19:22 北京
while True: try: s = input() def longest(s): j = len(s) while j > 1: for i in range(len(s)): if (i + j) > len(s): break if s[i : i + j] == s[i : i + j][::-1]: return len(s[i : i + j]) j -= 1 ans = longest(s) print(ans) except: break
点赞 回复 分享
发布于 2022-09-19 17:02 陕西
if res != '':各位大佬,这个地方是什么意思呢,res不是个列表吗?和空串怎么比较呢
点赞 回复 分享
发布于 2022-08-26 14:50 广东
第七行为什么是len(s)+1,+1干嘛用?
点赞 回复 分享
发布于 2022-08-24 21:08 香港
if s[i:j] == s[i:j][::-1]:,各位大神,这句话放在这里该怎么理解呢
点赞 回复 分享
发布于 2022-08-18 14:57 广东
长度稍微长一点会超时吧
点赞 回复 分享
发布于 2022-04-26 01:05

相关推荐

我就是0offer糕手:北大不乱杀
点赞 评论 收藏
分享
mjasjon:这种trash中厂 简历过筛概率比大厂还低(除阿里系)
投递哔哩哔哩等公司6个岗位
点赞 评论 收藏
分享
评论
108
23
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务