class Solution {
public:
int maxConsecutiveAnswers(string s, int k) {
int n = s.size(),kTemp = k;
int res = 0;
for (int l = 0; l < n;l ++) {
int r = l+1;
while(r < n && (s[l] == s[r] || kTemp > 0)){
if (s[l] != s[r]){
kTemp --;
}
r ++;
}
res = max(res,r - l );
// 重置并重新移动l
while(l + 1 < n && s[l] == s[l + 1]) l++;
kTemp = k;
}
kTemp = k;
for ( int r = n - 1; r >= 0;r --) {
int l = r - 1;
while(l >= 0 && (s[l] == s[r] || kTemp > 0)){
if (s[l] != s[r]){
kTemp --;
}
l --;
}
res = max(res,r - l );
// 重置并重新移动l
while(r - 1 >= 0 && s[r] == s[r - 1]) r --;
kTemp = k;
}
return res;
}
};
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int maxConsecutiveAnswers1(string s, int k,char t) {
int n = s.size();
int res = 0;
for (int l = 0,r = 0,sum = 0; r < n;r ++) {
if (s[r] != t) sum ++;
while(sum > k){
if (s[l] != t) sum --;
l ++;
}
res = max(res , r - l + 1);
}
return res;
}
int maxConsecutiveAnswers(string s,int k){
return max(
maxConsecutiveAnswers1(s,k,'F'),
maxConsecutiveAnswers1(s,k,'T')
);
}
int main(){
cout<<maxConsecutiveAnswers("TTFF",2)<<endl;
}