투 포인터까지는 생각했으나, 두 개의 포인터를 하나씩 옮기는 방식으로 구현했다가 실패함
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
used = {}
max_length = start = 0
for index, char in enumerate(s):
if char in used and start <= used[char]:
start = used[char] + 1
else:
max_length = max(max_length, index - start + 1)
used[char] = index
return max_length
딕셔너리의 value로 index를 저장하는 것을 주목하자.