维护一段连续的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