[파이썬 leetcode03- 슬라이딩 윈도우 방법을 반복 최대 문자 없음 문자열

문제 설명 :

문자열을 감안할 때, 당신은 반복되는 문자의 긴 문자열의 하위 길이를 포함하지 않는 알아보십시오.

예 1 :

입력 : "abcabcbb"
출력 : 3
설명 : 길이가 3 있도록 반복없이 문자의 긴 문자열이 "ABC"이기 때문입니다.
예 2 :

입력 : "BBBBB"
출력 : 1
설명 : 길이가 1 그래서, "b"를하지 않고 문자를 반복 가장 긴 문자열이 있기 때문에.
예 3 :

입력 : "pwwkew"
출력 : 3
설명 : 길이가 3, 그래서 "wke"없이 문자를 반복 가장 긴 하위 문자열이 있기 때문에.
"pwke은"서브 순서가 아니라 문자열입니다 당신의 대답은 길이의 문자열이어야 참고하시기 바랍니다.

관례 적으로, 제 우리 슬라이딩 윈도우 방식의 간단한 버전은 :

클래스 해결책 :
     DEF : - lengthOfLongestSubstring는> (자기가 S STR) : INT 
        TMP = 0 #이 최대 값을 획득하도록 조건을 기록 
        을 위해 I  범위 (1 렌 (S) + +1) : #의 1 LEN 스텝 (S) +1 
            에 대한 J  범위 (렌 (S) -i + 1.) : #의 윈도우는 왼쪽 
                IF 는 len (SET (S [J : J + I])) == LEN (S [J : J + I] ) : # 만약 윈도우 길이와 윈도우가 더 반복 문자 것을 나타내는, 동일한 집합을 복용 후 원래 길이 
                    의 tmp = 최대 (TMP는, I) # TMP의 업데이트 된 값 
        반환 의 tmp #이 마지막에 반환

그 결과, 다음 아직 시간 제한, 만 봐 :

당신은 슬라이딩 윈도우, 간단하고 원유의 간단한 버전을 할 수있는 제목을 원하는 경우 하나의 유스 케이스는 통과하지 않았다.

의 슬라이딩 윈도우로 업그레이드 사용해야하려면 왼쪽 경계 시작, 최대의 MAX_NUM 기록, 현재의 기록은 해시를 하위 문자열 통과 구한다. (가) 배열을 왼쪽에서 먼저 해시에 추가, 다음 방법을 반복 문자가 있었다 여부를 확인하는 방법? 오랜 시간 같은 비트는, 해시 테이블은 해시 테이블과 가치의 길이 미만, 캐릭터, 작품의 왼쪽 가장자리에이 시간의 설명이 반복되고 있다면, 키를 얻을 수있는 영리한 방법을 생각 그래서 왼쪽 여백에 해당하는 문자 반복이있는 경우 해시 값의 감소는, 상기 특성 값이 0이되면,이 때, 키의 길이가 해시 테이블 가치와 동일 할 때까지 제거되고, 하나씩 감소, + = 1 시작 최대 전류 매칭을 기록한다.

클래스 해결책 :
     DEF lengthOfLongestSubstring (자기, S : STR)은 -> INT :
         IF LEN (S) == 0
             복귀 0
         IF . 렌 (S) (1) == :
             리턴 . 1 
        시작 = 0   # 슬라이딩 윈도우 좌측 
        MAX_NUM = 0   #을 가진 최대 값을 산출하는 
        로부터 콜렉션 오기 defaultdict를 
        해시 = A defaultdict (int)를  
         위한 I 범위 (렌 (S)) 
            의 해시 [S [I] + 1 =.
             그동안 렌 (해시) <self.dictSum (해시) 
                해시 [S가 [시작] - = 1 인
                 경우 해시 == [S []를 시작] 0 :
                     해쉬 [S []는 시작] 
                시작 + = 1 
            MAX_NUM = 최대 (MAX_NUM 난 스타트 +1 )
         반환 MAX_NUM
     DEF dictSum (자기), DIC : 
        합계 = 0을
         위한 I DIC : 
            합계 + = DIC [I]
         리턴

결과 :

조금 비참하지만, 어떤 결과가 있지만, 먼저 나왔다 않습니다. 

추천

출처www.cnblogs.com/xiximayou/p/12293235.html