class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        n = len(s)
        seen = [0] * 256
        l = r = 0
        ans = 0
        while r < n:
            while seen[ord(s[r])]:
                seen[ord(s[l])] = 0
                l += 1 
            seen[ord(s[r])] = 1
            r += 1
            ans = max(ans, r - l)
        return ans
