3. Longest Substring Without Repeating Characters

Yongsang Yoon·2022년 1월 15일
0

LeetCode

목록 보기
2/9

Problem

Given a string s, find the length of the longest substring without repeating characters.

중복되지 않는 charter로 가장 긴 substring을 만드는 문제

Trials

Case 1

class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        index = 0
        substring = []
        n = len(s)
        max_length = 0
        while index < n:
            
            ch = s[index]
            if ch not in substring:
                substring.append(ch)    
            else:
                max_length = max(len(substring), max_length)
                ch_idx = substring.index(ch)
                substring = substring[ch_idx+1:]+[ch] # 1
                
            index += 1
        
        max_length = max(len(substring), max_length) # 2
        return max_length

Comment 1:
abcdeff에서 abcdef까지 가면 중복없이 현재 인덱스까지 최대 길이로 생각했다. 근데 시작중복문자 다음부터 다시 subtring을 만들 수 있다.
dvdf가 반례임.

Comment 2:
길이가 1인 경우 max_lentgh를 while loop 밖에서 구해야한다.

profile
I'm a student

0개의 댓글