最长的无重复字符串python

def longstr(s):
    """
    最长的无重复字符串
    :param s:
    :return:
    """
    max_len = 0
    if s is None or len(s) == 0:
        return 0

    result = dict()
    one_max = 0
    start = 0
    for i in range(len(s)):
        if s[i] in result and result[s[i]] >= start:
            start = result[s[i]] + 1
        one_max = i - start + 1
        result[s[i]]=i
        max_len = max(max_len, one_max)

    print(max_len)

动态规划,先判断传入的字符串长度是否为空来直接返回最长长度0

然后定义一个字典来存储不重复的字符和下标

判断当前字符是否在字典中和当前字符的下标是否大于等于最近重复字符的所在位置

比较此次循环的最大不重复子串长度和历史循环最大不重复子串长度

全部评论

相关推荐

10-19 14:15
兰州大学 Java
黄花菜豆:咱俩bg很一致啊uu而且我也做过这个仿小红书,感觉有点太深了短期内不好驾驭啊怕被问穿
点赞 评论 收藏
分享
后端转测开第一人:双非本 没大厂实习 后端肯定没机会了 直接转测开吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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