[알고리즘] 중복 문자 없는 가장 긴 부분 문자열

June·2021년 1월 21일
0

알고리즘

목록 보기
34/260

중복 문자 없는 가장 긴 부분 문자열

내 풀이

투 포인터까지는 생각했으나, 두 개의 포인터를 하나씩 옮기는 방식으로 구현했다가 실패함

책 풀이

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를 저장하는 것을 주목하자.

0개의 댓글