3. 없음 반복 긴 문자열
주제 설명 :
문자열을 감안할 때, 당신은 반복되는 문자의 긴 문자열의 하위 길이를 포함하지 않는 알아보십시오.
시험 예 :
- 입력 : "abcabcbb"
출력 : 3
설명 : 길이가 3 있도록 반복없이 문자의 긴 문자열이 "ABC"이기 때문입니다. - 입력 : "BBBBB"
출력 : 1
설명 : 길이가 1 그래서, "b"를하지 않고 문자를 반복 가장 긴 문자열이 있기 때문에. - 입력 : "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))