class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        l,r = 0,0
        d = {}
        res = 0
        while r < len(s):
            if s[r] not in d:
                d[s[r]] = 1
            else:
                d[s[r]] += 1
            
            while d[s[r]] > 1:
                d[s[l]] -= 1
                l += 1
            res = max(res,r-l+1)
            r += 1
        return res