Problem: 3. 无重复字符的最长子串


文章目录

  • 思路 & 解题方法
  • 复杂度
  • Code


思路 & 解题方法

滑动窗口经典题目

复杂度

时间复杂度:

添加时间复杂度, 示例: 无重复字符的最长子串【滑动窗口】【哈希】_哈希算法

空间复杂度:

添加空间复杂度, 示例: 无重复字符的最长子串【滑动窗口】【哈希】_哈希算法

Code

class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        ans = 0
        left = 0
        length = len(s)
        dic = set()
        for to in range(length):
            if s[to] in dic:
                ans = max(ans, to - left)
                while s[left] != s[to]:
                    dic.remove(s[left])
                    left += 1
                left += 1
            else:
                dic.add(s[to])
        ans = max(ans, length - left);
        return ans