leetcode-重複文字のない最長男列(python)

935 ワード

タイトル:文字列を指定します.重複文字が含まれていない長男列の長さを見つけてください.
例1:
入力:“abcabcbb”出力:3解釈:重複文字のない最長男列は“abc”であるため、その長さは3である.
例2:
入力:「bbbbb」出力:1解釈:重複文字のない長男列は「b」であるため、その長さは1である.
例3:
入力:「pwwkew」出力:3解釈:重複文字のない長男列は「wke」であるため、その長さは3である.あなたの答えはサブストリングの長さでなければなりません.「pwke」はサブストリングであり、サブストリングではありません.コード:
class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        dict={}
        begin=0
        result=0
        word=[]
        for i in range(len(s)):
            if s[i] not in dict or dict[s[i]]==0:
                dict[s[i]]=1
                word.append(s[i])
                result=max(result,len(word))
            else:  
                dict[s[i]]+=1
                while dict[s[i]]>1:
                    dict[s[begin]]-=1
                    begin+=1
                word=[]
                for j in range(begin,i+1):
                    word.append(s[j])
        return result