3. Longest Substring Without Repeating Characters

3756 ワード

Problem
Given a string s, find the length of the longest substring without repeating characters.
重複しないリースを使用して最長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までは、現在のインデックスの最大長とは重複しない.ただし、文字の繰り返しを開始してからサブループを再作成できます.dvdfは反例です.
Comment 2:
長さが1の場合、while loopの外でmax lentghを解く必要があります.