力扣424.替換後的最長替換字元——python
阿新 • • 發佈:2021-02-03
這裡利用defaultdict模組,創建出一個所有值為0的字典,之後進行遍歷逐漸進行判斷最大的可選的的數值,利用需要替換數=開始-結束+1-最大的重複數,如果符合要求先記錄,否則我們改變起點繼續進行
from collections import defaultdict
maxLen, Start, maxFreq = 0, 0, 0
# 統計出現次數
freqDict = defaultdict(int)
for End in range(len(s)):
rightChar = s[End]
freqDict[rightChar] += 1
# 儲存歷史出現的最大重複數
maxFreq = max(freqDict[rightChar], maxFreq)
# 縮小滑動視窗
if (End - Start + 1 - maxFreq) > k:
leftChar = s[Start]
Start += 1
freqDict[leftChar] -= 1
maxLen = max(maxLen, End - Start + 1)
return maxLen