维护一段连续的subarray,窗口内只有要么k个T或者k个F,并计算此时窗口的大小,更新全局最大值。
class Solution: def maxConsecutiveAnswers(self, answerKey: str, k: int) -> int: rare = 0 count_T = 0 count_F = 0 res = 0 for front in range(len(answerKey)): if answerKey[front] == 'T': count_T += 1 else: count_F += 1 while count_F > k and count_T > k: if answerKey[rare] == 'F': count_F -= 1 else: count_T -= 1 rare += 1 res = max(res, front - rare + 1) return res