最长的无重复字符串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

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

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

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

全部评论

相关推荐

点赞 评论 收藏
分享
02-15 17:56
已编辑
广州大学 C++
lylyhhh:个人优势换专业技能吧 然后把六级叉了 奖项你觉得有含金量的往教育经历丢 专业技能里面你能答哪些八股就写你这个东西能解决什么什么问题
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务