[제목] LeetCode 브러쉬 - 3 없음 반복 긴 문자열

3. 없음 반복 긴 문자열

주제 설명 :

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

시험 예 :

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

문제 해결 아이디어 :

사용 슬라이딩 윈도우 알고리즘 이송 된 문자 문자열이 연속되지 않을 때 입력 문자열을 통과, 생각을, 하위 문자열 추가, 그렇지 않으면, 업데이트 지속적으로 반복 문자 문자열 이후 연속 서브 원래의 최대 전류의 최대 런 길이를 갱신 연속 문자열 남아, 그 후 반복되는 문자를 확인하십시오.

class Solution:
    def lengthOfLongestSubstring(self, s):
        return self.longest(s)

    def longest(self, s, m=0):
        string = ''
        for i in range(len(s)):
            if s[i] not in string:
                string += s[i]
            else:
                m = max(m, len(string))
                string = string[string.index(s[i]) + 1:] + s[i]
        return max(m, len(string))

결과 :

그림 삽입 설명 여기

출시 다섯 개 원래 기사 · 원의 칭찬 0 · 조회수 347

추천

출처blog.csdn.net/qq_40772371/article/details/103550954