lc003.无重复字符的最长子串

 

题目链接

此题与jz048相同。这个算法的时间复杂度是O(N),空间复杂度是O(1)。

class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        dic = {}
        res = tmp = 0
        for i in range(len(s)):
            p = dic.get(s[i], -1)
            dic[s[i]] = i
            tmp = tmp + 1 if i - p > tmp else i - p
            res = max(res, tmp)
        return res