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