leetcode

Leet code 3 - Longest Substring Without Repeating Characters

monsangter 2023. 5. 15. 13:27


내 풀이.

브루트 포스를 활용한 풀이

 

class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
     
        dict1 = {}
        result = 0
        cnt = 0
        if len(s) == 1 :
            return 1

        for i in range(len(s)):
            for j in range(i,len(s)):
                
                if s[j] in dict1:
                    result = max(cnt, result)
                    cnt = 0
                    dict1 = {}
                    break
                cnt += 1
                dict1[s[j]] = 0

               

        return result

 

중복 발생시 시작 인덱스를 바꿔가며 처음부터 세준다.

순회했던 문자열은 후에 다시 탐색하는 시간이 추가적으로 발생하는 것을 막기 위해 해쉬를 사용해 준다.

길이가 1일때는 1로 return . 나머지는 중복 발생시 결과값을 비교해 갱신해주고, cnt와 dict를 초기화 해준다.