其他分享
首页 > 其他分享> > leetcode3——无重复字符的最长子串(滑动窗口)

leetcode3——无重复字符的最长子串(滑动窗口)

作者:互联网

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

在这里插入图片描述

1. 思路在这里插入图片描述

2. 代码

class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        if len(s) == 0:return 0
        if len(s) == 1:return 1
        m = len(s)
        hashset = set()
        ans = 0
        left = 0 # 右指针初始化为0
        for i in range(m):
            # i为左指针,每次操作向右移一格
            if i!= 0:
                hashset.remove(s[i-1])
            # 操作右指针
            while left < m and s[left] not in hashset:
                hashset.add(s[left])
                left += 1
            # 此时left值为while循环中不合法的,所以不用left - i + 1
            ans = max(ans,left - i)
        return ans

标签:子串,return,leetcode3,hashset,len,ans,滑动,指针,left
来源: https://blog.csdn.net/weixin_44441131/article/details/114224910