def lengthOfLongestSubstring(s): used = {} maxl = left = 0 for i in range(len(s)): if s[i] in used and left <= used[s[i]]: left = used[s[i]]+1 else: maxl = max(maxl, i - left + 1) used[s[i]] = i return maxl