从左向右进行扫描,遇到重复的字符时,从前一个出现该字符的位置的下一个字符开始,重新扫描,直到扫描到最后。
class Solution:
def lengthOfLongestSubstring(self, s):
"""
:type s: str
:rtype: int
"""
res = ''
maxlen = 0
for i in s:
if i not in res:
res += i
else:
maxlen = max(maxlen, len(res))
index = res.index(i)
res = res[index + 1:] + i
return max(maxlen, len(res))