問題の説明:最長の部分文字列を別の文字の長さを持つ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