#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param s string字符串 
# @return int整型
#
class Solution:
    def lengthOfLongestSubstring(self , s: str) -> int:
        # write code here
        n, l, cs, ans = len(s), 0, set(), 1#字符串长度,左下标,滑动窗口,最长长度
        for r in range(n):#右下标不断变化
            while s[r] in cs:#左下标及滑动窗口变化
                cs.remove(s[l])
                l += 1
            cs.add(s[r])#滑动窗口内增加新元素
            ans = max(ans,r-l+1)#寻找最大长度
        return ans