最長ストリングのK異なる文字まで含む[パイソン-leetcode340-スライディングウィンドウ法]

問題の説明:最長の部分文字列を別の文字の長さを持つKを見つけるまであって、文字列sを考えます。

「EBE」は条件を満たしているため、例えば、S =「cebea」は、K = 2は、出力は、3:ほとんどの二つの異なる文字、最長サブストリングに含まれてい

四つの異なる文字までを含む、最長サブ例:S =「世界」、K = 4の場合、出力は「この世」と「orld」の条件を満足するので、4であります

クラスソリューション:
     DEF lengthOfLongestSubstringKDistinct(セルフ、S、K):
        TMP = 0 最大値を得るための条件を記録する
        ための I において:範囲(1、(S LEN)+ +1)#1 lenを1〜工程(単数または複数) + +1しました
            ために J レンジ(LEN(S)-i + 1):#1 ウィンドウ左
                プリント(S [J:J + I])
                 IF lenの(SET(S [J:J + I]))== K: k個の異なる文字を取るためにウィンドウが設定されている場合は 
                    、TMP = MAX(TMP、I) 更新のtmpの値
                    を印刷" :{} TMP " .format(TMP))
         のリターンのtmp 最後に戻りました

プロセス:

C
E
B
、E
A
CE
TMP:2
EB
TMP:2
BEの
TMP:2
EA
TMP:2
CEB
EBE
TMP:3
BEA
CEBE
ebea
cebea

おすすめ

転載: www.cnblogs.com/xiximayou/p/12288936.html