欢迎光临
我们一直在努力

最长子串:找出不含有重复字符的最长子串的长度

"""
最长子串
给定一个字符串,找出其中不含有重复字符的最长子串的长度。
注意:是子串的长度,不是子串。
"""

def sub_string_length(s):
    """
    计算给定字符串中最大的不重复子字符串的长度。

    :param s: 输入的字符串
    :return: 最大的不重复子字符串的长度
    """
    # 初始化最大长度为0
    result = 0
    # 使用集合记录当前不重复子字符串的字符
    s_set = set()
    # 获取字符串的长度
    length = len(s)
    # 初始化最后一个字符的位置为-1,用于后续遍历
    pos = -1
    # 遍历字符串中的每个字符
    for i in range(length):
        # 如果不是第一个字符,移除已遍历过的字符,以更新集合
        if i != 0:
            s_set.remove(s[i - 1])
        # 向后寻找不重复的字符,更新集合和pos的值
        while pos + 1 < length and s[pos + 1] not in s_set:
            s_set.add(s[pos + 1])
            pos += 1
        # 更新最大长度
        result = max(result, pos - i + 1)
    # 返回最大长度
    return result

# 调用函数并打印结果
print(sub_string_length("xyyabcdy"))
赞(0) 打赏
未经允许不得转载:创想未来 » 最长子串:找出不含有重复字符的最长子串的长度

评论 抢沙发

评论前必须登录!

 

更好的Python学习

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

联系我们联系我们

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册